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