在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    java從入門(mén)到精通二十八(Spring注解開(kāi)發(fā))

    java從入門(mén)到精通二十八(Spring注解開(kāi)發(fā))

    Spring注解開(kāi)發(fā)

    • 注解改造spring配置文件

    從注解開(kāi)發(fā)開(kāi)始,這里的一切都變得十分簡(jiǎn)化。

    包括后面的大量開(kāi)發(fā)實(shí)戰(zhàn),我們的注解開(kāi)發(fā)都會(huì)派上大的用處。

    注解設(shè)置bean

    那么我們的bean就不再xml文件里面進(jìn)行定義了。具體怎么做呢?

    我們可以這樣舉個(gè)例子。先創(chuàng)建一個(gè)接口,放在dao層,然后創(chuàng)建sevice包,在這里我們創(chuàng)建接口service繼承dao,然后在改包下創(chuàng)建impl,里面創(chuàng)建類來(lái)實(shí)現(xiàn)sevice接口類。

    具體如下

    package com.jgdabc.dao;public interface Bookdao { void save();}package com.jgdabc.service;import com.jgdabc.dao.Bookdao;public interface BookService extends Bookdao { @Override void save();}package com.jgdabc.service.impl;import com.jgdabc.service.BookService;public class BookDaoServiceImp implements BookService { @Override public void save() { }}

    我們?nèi)缓筮@樣操作這個(gè)實(shí)現(xiàn)類

    package com.jgdabc.service.impl;import com.jgdabc.dao.Bookdao;import com.jgdabc.service.BookService;import org.springframework.stereotype.Component;@Component(“bookDao”)public class BookDaoServiceImp implements BookService { @Override public void save() { System.out.println(“bookdaoservice impl is runnning”); }}

    非常重要的一件事,在BookDaoImpl類上添加@Component 注解。到底是什么用處呢?

    例如這樣,我們上面的代碼與此類似

    然后呢,我們還是需要去spring 的配置文件配置一下。你要開(kāi)啟包掃描

    然后運(yùn)行

    但是包括包掃描,開(kāi)啟命名空間,其實(shí)都需要在配置文件上添加配置,比較容易出現(xiàn)錯(cuò)誤。我們后面可以將配置文件也按照注解開(kāi)發(fā)。

    component-scan

    component:組件,Spring將管理的bean視作自己的一個(gè)組件scan:掃描

    base-package指定Spring框架掃描的包路徑,它會(huì)掃描指定包及其子包中的所有類上的注解。包路徑越多[如:com.jgdabc.dao.impl],掃描的范圍越小速度越快

    包路徑越少[如:com.jgdabc],掃描的范圍越大速度越慢

    一般掃描到項(xiàng)目的組織名稱即Maven的groupId下[如:com.jgdabc]即可。

    注意

    @Component注解如果不起名稱,會(huì)有一個(gè)默認(rèn)值就是當(dāng)前類名首字母小寫(xiě),所以也可以按照名稱獲取

    對(duì)于@Component注解,還衍生出了其他三個(gè)注解@Controller 、@Service 、@Repository

    這幾個(gè)注解的功能是一樣的,只是設(shè)定這樣的名字便于我們區(qū)分具體功能。

    方便我們后期在編寫(xiě)類的時(shí)候能很好地區(qū)分出這個(gè)類是屬于表現(xiàn)層、業(yè)務(wù)層還是數(shù)據(jù)層的類。

    注解改造spring配置文件

    首先將原來(lái)的配置文件刪掉。因?yàn)閷?shí)在太麻煩。或者你可以注銷掉。我們使用注解的方式。

    這樣這個(gè)之前的配置文件就不會(huì)再起作用了。

    然后我們創(chuàng)建一個(gè)config的目錄。下面創(chuàng)建配置類。

    難道你創(chuàng)建一個(gè)配置類,spring就會(huì)認(rèn)為你這個(gè)類就是它的配置類?不會(huì)的。

    我們用注解告訴他

    上次我們用的是在xml配置掃描,現(xiàn)在我們用注解掃描bean。

    現(xiàn)在我們運(yùn)行App測(cè)試類,照樣也可以運(yùn)行出來(lái)。這個(gè)就真的方便太多了。

    總結(jié)以上的過(guò)程

    注解掃描的話,可以掃描多級(jí)。需要這樣去寫(xiě),舉個(gè)例子

    之前我們讀取配置方式改一下

    import com.jgdabc.config.SpringConfig;import com.jgdabc.dao.Bookdao;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.AnnotationConfigApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App { public static void main(String[] args) { // ApplicationContext ctx = new ClassPathXmlApplicationContext(“SpringConfig.xml.bak”);// DataSource dataSource = (DataSource) ctx.getBean(“dataSource”);// System.out.println(dataSource);// DataSource dataSource01= (DataSource) ctx.getBean(“datasource01”);// System.out.println(dataSource01); AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class); Bookdao bookDao = (Bookdao) ctx.getBean(“bookDao”); bookDao.save(); }}

    起步就這么簡(jiǎn)單。

    未完續(xù)更。

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
    上一篇 2022年6月27日 06:23
    下一篇 2022年6月27日 06:23

    相關(guān)推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息