Spring?IOC容器Bean管理的完全注解開(kāi)發(fā)放棄配置文件
IOC容器基于Bean管理的完全注解開(kāi)發(fā)放棄配置文件
通過(guò)注解的方式,我們不需要在xml配置文件里進(jìn)行各種注入配置,只需要開(kāi)啟掃描即可。
那如果開(kāi)啟掃描也能通過(guò)注解方式,那不就完全不需要配置文件了么?
創(chuàng)建配置類(lèi)
創(chuàng)建配置類(lèi),替代 xml 配置文件。
package com.pingguo.spring5.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration @ComponentScan(basePackages = {"com.pingguo.spring5"}) public class SpringConfig { }
配置類(lèi)中需要注意的:
@Configuration:類(lèi)名你可以隨便起,但是想讓spring識(shí)別出這是配置類(lèi),需要加這個(gè)注解。
@ComponentScan:這個(gè)注解就是掃描用,后面參數(shù)值是你指定的路徑。
測(cè)試一下
之前測(cè)試函數(shù)里是讀取配置文件的,現(xiàn)在我把配置文件刪掉了,要怎么處理?
public class TestService { @Test public void testService() { ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); UserService userService = context.getBean("userService", UserService.class); System.out.println(userService); userService.add(); } }
就是使用 AnnotationConfigApplicationContext,后面括號(hào)里是配置類(lèi)。
其他幾個(gè)層的類(lèi)代碼都不變,并且已經(jīng)刪掉xml配置文件了。
現(xiàn)在運(yùn)行測(cè)試方法:
com.pingguo.spring5.service.UserService@72a7c7e0 service add() ... ... spring 從0開(kāi)始 UserDao UserDaoImpl2 add()... ... Process finished with exit code 0
運(yùn)行正常,結(jié)果與之前使用xml配置文件時(shí)一致。
不過(guò)這種完全注解開(kāi)發(fā),在實(shí)際操作中是用到另一種結(jié)構(gòu),就是spring boot 。
雖然 springboot 我之前就有過(guò)一些學(xué)習(xí),但就是個(gè)入門(mén)都不到,很多東西能用但不知道為什么。就拿這些注解來(lái)說(shuō),學(xué)了spring 我才知道的清楚些。所以,待 spring 學(xué)完,就開(kāi)啟 springboot 學(xué)習(xí),更多關(guān)于Spring IOC Bean管理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
spring?eurake中使用IP注冊(cè)及問(wèn)題小結(jié)
在開(kāi)發(fā)spring?cloud的時(shí)候遇到一個(gè)很奇葩的問(wèn)題,就是服務(wù)向spring?eureka中注冊(cè)實(shí)例的時(shí)候使用的是機(jī)器名,然后出現(xiàn)localhost、xxx.xx等這樣的內(nèi)容,這篇文章主要介紹了spring?eurake中使用IP注冊(cè),需要的朋友可以參考下2023-07-07Java中常見(jiàn)的對(duì)象轉(zhuǎn)換工具
對(duì)象進(jìn)行對(duì)象的轉(zhuǎn)換是一個(gè)操作重復(fù)且繁瑣的工作,于是市面上就有許多的對(duì)象轉(zhuǎn)換工具來(lái)解決這個(gè)問(wèn)題,下面我們就來(lái)看看幾個(gè)比較常用的工具(mapstruct,Spring BeanUtils,Apache BeanUtils)使用方式及其性能2023-04-04如何用java計(jì)算兩個(gè)時(shí)間相差多少小時(shí)
最近工作中遇到需要計(jì)算時(shí)間差,下面這篇文章主要給大家介紹了關(guān)于如何用java計(jì)算兩個(gè)時(shí)間相差多少小時(shí)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12Spring Batch讀取txt文件并寫(xiě)入數(shù)據(jù)庫(kù)的方法教程
這篇文章主要給大家介紹了Spring Batch讀取txt文件并寫(xiě)入數(shù)據(jù)庫(kù)的方法,SpringBatch 是一個(gè)輕量級(jí)、全面的批處理框架。這里我們用它來(lái)實(shí)現(xiàn)文件的讀取并將讀取的結(jié)果作處理,處理之后再寫(xiě)入數(shù)據(jù)庫(kù)中的功能。需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-04-04SpringBoot使用Shiro實(shí)現(xiàn)動(dòng)態(tài)加載權(quán)限詳解流程
本文小編將基于?SpringBoot?集成?Shiro?實(shí)現(xiàn)動(dòng)態(tài)uri權(quán)限,由前端vue在頁(yè)面配置uri,Java后端動(dòng)態(tài)刷新權(quán)限,不用重啟項(xiàng)目,以及在頁(yè)面分配給用戶?角色?、?按鈕?、uri?權(quán)限后,后端動(dòng)態(tài)分配權(quán)限,用戶無(wú)需在頁(yè)面重新登錄才能獲取最新權(quán)限,一切權(quán)限動(dòng)態(tài)加載,靈活配置2022-07-07SpringMVC用JsonSerialize日期轉(zhuǎn)換方法
下面小編就為大家?guī)?lái)一篇SpringMVC用JsonSerialize日期轉(zhuǎn)換方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起 小編過(guò)來(lái)看看吧2016-11-11Spring Bean實(shí)例的創(chuàng)建及構(gòu)造器的挑選
這篇文章主要介紹了Spring Bean實(shí)例的創(chuàng)建及構(gòu)造器的挑選,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下2021-04-04Spring整合Quartz分布式調(diào)度的示例代碼
本篇文章主要介紹了Spring整合Quartz分布式調(diào)度的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04