Spring Core

Spring Core

一、容器

1.作用:創(chuàng)建并管理bean的容器
2.創(chuàng)建:使用反射技術(shù),創(chuàng)建bean的實(shí)例
3.設(shè)計(jì):使用工廠(chǎng)模式(BeanFactory)
4.管理:容器中的每一個(gè)bean,Spring 容器默認(rèn)按照單例方式管理,可以通過(guò)設(shè)置< bean scope="prototype" />更改為每次獲取時(shí)創(chuàng)建不同的實(shí)例
5.ApplicationContext
  • ClassPathXmlApplixationContext:在classpath路徑下加載xml配置文件,完成Spring容器的加載;或者,采用注解方式時(shí),需要在xml配置文件中使用< context:component-scan/ >完成類(lèi)掃描
ApplicationContext applicationContext =new ClassPathXmlApplicationContext("spring-config2.xml");
  • AnnotationConfigApplicationContext:基于注解配置的Spring容器加載方式
ApplicationContext context = new AnnotationConfigApplicationContext("com.apesource");

二、IOC 或 DI

1.IOC:Inverse Of Control(控制反轉(zhuǎn))
2.DI:Dependency Injection(依賴(lài)注入)
3.思想:將項(xiàng)目中的類(lèi)(組件)交給Spring容器管理,按照組件之間、彼此的依賴(lài)關(guān)系(采用xml配置文件或者注解),完成組件之間的注入,降低組件之間的耦合
4.三種注入方式
  • 屬性setter注入
  • 構(gòu)造注入(使用有參構(gòu)造方法進(jìn)行注入)
  • 接口注入

三、注解

1.聲明bean
  • @Component:組件
  • @Controller:控制器組件
  • @Service:;業(yè)務(wù)層組件
  • @Repository:數(shù)據(jù)訪(fǎng)問(wèn)層組件
2.聲明注入
(1)Spring Framework
  • @Autowired:自動(dòng)裝配(默認(rèn)按照類(lèi)型自動(dòng)裝配),按照當(dāng)前聲明的接口類(lèi)型,在容器中查找該接口實(shí)現(xiàn)類(lèi)對(duì)象bean,進(jìn)行自動(dòng)注入(裝配)。
//自動(dòng)裝配:按照當(dāng)前接口類(lèi)型(自動(dòng)在容器中查找該接口的實(shí)現(xiàn)類(lèi)對(duì)象)
    @Autowired
    private IUserDAO userDAO;
  • @Qualifier:按照bean名稱(chēng)自動(dòng)裝配,與@Autowired注解配合使用。按照當(dāng)前指定的bean名稱(chēng),在容器中查找該名稱(chēng)對(duì)應(yīng)的bean,進(jìn)行自動(dòng)注入(裝配)。
//自動(dòng)裝配:按照當(dāng)前接口類(lèi)型(自動(dòng)在容器中查找該接口的實(shí)現(xiàn)類(lèi)對(duì)象)
    @Autowired
//按照名稱(chēng)自動(dòng)裝配
    @Qualifier("VipUserBean")
    private IUserService vipUserService;
(2)Java標(biāo)準(zhǔn)注解
  • @Resource:javax擴(kuò)展包提供的注解,完成自動(dòng)注入,默認(rèn)按照類(lèi)型自動(dòng)注入,也可以使用name屬性進(jìn)行按名稱(chēng)自動(dòng)注入
 //自動(dòng)注入:默認(rèn)按照類(lèi)型自動(dòng)注入,也可以使用name屬性來(lái)指定bean名稱(chēng)進(jìn)行注入
    @Resource(name = "UserBean")
    private IUserService UserService;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容