最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Spring-IOC容器與Bean管理之基于注解的方式案例詳解

 更新時(shí)間:2021年08月31日 10:19:10   作者:LL.LEBRON  
這篇文章主要介紹了Java Spring-IOC容器與Bean管理之基于注解的方式案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

Spring-IOC容器-Bean管理-基于注解方式

什么是注解?

(1)注解是代碼特殊標(biāo)記,格式:@注解名稱(屬性名稱=屬性值, 屬性名稱=屬性值…)

(2)使用注解,注解作用在類上面,方法上面,屬性上面

(3)使用注解目的:簡(jiǎn)化 xml 配置

Spring 針對(duì) Bean 管理中創(chuàng)建對(duì)象提供注解

下面四個(gè)注解功能是一樣的,都可以用來(lái)創(chuàng)建 bean 實(shí)例

(1)@Component

(2)@Service

(3)@Controller

(4)@Repository

基于注解方式實(shí)現(xiàn)對(duì)象創(chuàng)建

①引入依賴(引入spring-aop jar包)

②開(kāi)啟組件掃描

<!--開(kāi)啟組件掃描
 1 如果掃描多個(gè)包,多個(gè)包使用逗號(hào)隔開(kāi)
 2 掃描包上層目錄
-->
<context:component-scan base-package="com.atguigu"></context:component-scan>

③創(chuàng)建類,在類上面添加創(chuàng)建對(duì)象注解

//在注解里面 value 屬性值可以省略不寫,
//默認(rèn)值是類名稱,首字母小寫
//UserService -- userService
@Component(value = "userService") //注解等同于XML配置文件:<bean id="userService" class=".."/>
public class UserService {
     public void add() {
     	System.out.println("service add.......");
     }
}

開(kāi)啟組件掃描細(xì)節(jié)配置

<!--示例 1
 use-default-filters="false" 表示現(xiàn)在不使用默認(rèn) filter,自己配置 filter
 context:include-filter ,設(shè)置掃描哪些內(nèi)容
-->
<context:component-scan base-package="com.atguigu" use-defaultfilters="false">
 <context:include-filter type="annotation"

expression="org.springframework.stereotype.Controller"/><!--代表只掃描Controller注解的類-->
</context:component-scan>
<!--示例 2
 下面配置掃描包所有內(nèi)容
 context:exclude-filter: 設(shè)置哪些內(nèi)容不進(jìn)行掃描
-->
<context:component-scan base-package="com.atguigu">
 <context:exclude-filter type="annotation"

expression="org.springframework.stereotype.Controller"/><!--表示Controller注解的類之外一切都進(jìn)行掃描-->
</context:component-scan>

基于注解方式實(shí)現(xiàn)屬性注入

① @Autowired:根據(jù)屬性類型進(jìn)行自動(dòng)裝配

(1)第一步 把 service 和 dao 對(duì)象創(chuàng)建,在 service 和 dao 類添加創(chuàng)建對(duì)象注解。

(2)第二步 在 service 注入 dao 對(duì)象,在 service 類添加 dao 類型屬性,在屬性上面使用注解。

@Service
public class UserService {
 //定義 dao 類型屬性
 //不需要添加 set 方法
 //添加注入屬性注解
 @Autowired
 private UserDao userDao;
 public void add() {
 System.out.println("service add.......");
 userDao.add();
 }
}

//Dao實(shí)現(xiàn)類
@Repository
//@Repository(value = "userDaoImpl1")
public class UserDaoImpl implements UserDao {
    @Override
    public void add() {
        System.out.println("dao add.....");
    }
}

② @Qualifier:根據(jù)名稱進(jìn)行注入,這個(gè)@Qualifier 注解的使用,和上面@Autowired 一起使用

//定義 dao 類型屬性
//不需要添加 set 方法
//添加注入屬性注解
@Autowired //根據(jù)類型進(jìn)行注入
//根據(jù)名稱進(jìn)行注入(目的在于區(qū)別同一接口下有多個(gè)實(shí)現(xiàn)類,根據(jù)類型就無(wú)法選擇,從而出錯(cuò)?。?
@Qualifier(value = "userDaoImpl1") 
private UserDao userDao;

③ @Resource:可以根據(jù)類型注入,也可以根據(jù)名稱注入(它屬于javax包下的注解,不推薦使用?。?/p>

//@Resource //根據(jù)類型進(jìn)行注入
@Resource(name = "userDaoImpl1") //根據(jù)名稱進(jìn)行注入
private UserDao userDao;

④ @Value:注入普通類型屬性

@Value(value = "abc")
private String name

完全注解開(kāi)發(fā)

(1)創(chuàng)建配置類,替代 xml 配置文件

@Configuration //作為配置類,替代 xml 配置文件
@ComponentScan(basePackages = {"com.atguigu"})
public class SpringConfig {
    
}

(2)編寫測(cè)試類

@Test
public void testService2() {
 //加載配置類
 ApplicationContext context
 = new AnnotationConfigApplicationContext(SpringConfig.class);
 UserService userService = context.getBean("userService",
UserService.class);
 System.out.println(userService);
 userService.add();
}

到此這篇關(guān)于Java Spring-IOC容器與Bean管理之基于注解的方式案例詳解的文章就介紹到這了,更多相關(guān)Java Spring-IOC容器與Bean管理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • BaseMapper接口的使用方法

    BaseMapper接口的使用方法

    這篇文章主要介紹了BaseMapper接口的使用方法,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • springboot 中 inputStream 神秘消失之謎(終破)

    springboot 中 inputStream 神秘消失之謎(終破)

    這篇文章主要介紹了springboot 中 inputStream 神秘消失之謎,為了能夠把這個(gè)問(wèn)題說(shuō)明,我們首先需要從簡(jiǎn)單的http調(diào)用說(shuō)起,通過(guò)設(shè)置body等一些操作,具體實(shí)現(xiàn)代碼跟隨小編一起看看吧
    2021-08-08
  • Mockito mock Kotlin Object類方法報(bào)錯(cuò)解決方法

    Mockito mock Kotlin Object類方法報(bào)錯(cuò)解決方法

    這篇文章主要介紹了Mockito mock Kotlin Object類方法報(bào)錯(cuò)解決方法,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • SprintBoot深入淺出講解場(chǎng)景啟動(dòng)器Starter

    SprintBoot深入淺出講解場(chǎng)景啟動(dòng)器Starter

    本篇文章將和大家分享一下 Spring Boot 框架中的 Starters 場(chǎng)景啟動(dòng)器的內(nèi)容,關(guān)于 Starters 具體是用來(lái)做什么的,以及在開(kāi)發(fā) Spring Boot項(xiàng)目前,要如何自定義一個(gè) Starters 場(chǎng)景啟動(dòng)器
    2022-06-06
  • java實(shí)現(xiàn)水波紋擴(kuò)散效果

    java實(shí)現(xiàn)水波紋擴(kuò)散效果

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)水波紋擴(kuò)散效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • mybatis-plus中wrapper的用法實(shí)例詳解

    mybatis-plus中wrapper的用法實(shí)例詳解

    本文給大家介紹了mybatis-plus中wrapper的用法,包括條件構(gòu)造器關(guān)系、項(xiàng)目實(shí)例及具體使用操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • springmvc+spring+mybatis實(shí)現(xiàn)用戶登錄功能(上)

    springmvc+spring+mybatis實(shí)現(xiàn)用戶登錄功能(上)

    這篇文章主要為大家詳細(xì)介紹了springmvc+spring+mybatis實(shí)現(xiàn)用戶登錄功能,比較基礎(chǔ)的學(xué)習(xí)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 使用SpringBoot設(shè)置虛擬路徑映射絕對(duì)路徑

    使用SpringBoot設(shè)置虛擬路徑映射絕對(duì)路徑

    這篇文章主要介紹了使用SpringBoot設(shè)置虛擬路徑映射絕對(duì)路徑的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • spring Mvc配置xml使ResponseBody返回Json的方法示例

    spring Mvc配置xml使ResponseBody返回Json的方法示例

    這篇文章主要給大家介紹了關(guān)于spring Mvc配置xml使ResponseBody返回Json的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • Java獲取http和https協(xié)議返回的json數(shù)據(jù)

    Java獲取http和https協(xié)議返回的json數(shù)據(jù)

    本篇文章主要介紹了Java獲取http和https協(xié)議返回的json數(shù)據(jù) ,本篇文章提供兩個(gè)方法,幫助各位如何獲取http和https返回的數(shù)據(jù)。有興趣的可以了解一下。
    2017-01-01

最新評(píng)論

岳池县| 泗水县| 保德县| 泽库县| 滕州市| 三明市| 中宁县| 灌云县| 读书| 呈贡县| 雷州市| 浙江省| 桦川县| 垣曲县| 丹巴县| 三明市| 灌南县| 万山特区| 措美县| 九龙城区| 柳江县| 河北省| 乌拉特前旗| 康平县| 增城市| 四会市| 浙江省| 开平市| 德令哈市| 来凤县| 呼伦贝尔市| 健康| 建平县| 青神县| 丹巴县| 壤塘县| 中卫市| 湖口县| 太和县| 土默特右旗| 始兴县|