Java Spring數(shù)據(jù)單元配置過(guò)程解析
基本原理 - 容器和bean
在Spring中,那些組成你應(yīng)用程序的主體(backbone)及由Spring IoC容器所管理的對(duì)象,被稱(chēng)之為bean。 簡(jiǎn)單地講,bean就是由Spring容器初始化、裝配及管理的對(duì)象,除此之外,bean就與應(yīng)用程序中的其他對(duì)象沒(méi)有什么區(qū)別了。
也就是說(shuō),其實(shí)spring 就是在加載配置文件beans.xml的時(shí)候,通過(guò)反射機(jī)制,去實(shí)例化<bean>標(biāo)簽里面的類(lèi)的過(guò)程。這里可以通過(guò)在類(lèi)的默認(rèn)無(wú)參構(gòu)造方法中寫(xiě)點(diǎn)東西判斷出來(lái)。
1. 配置元數(shù)據(jù)
基于XML的配置元數(shù)據(jù)的基本結(jié)構(gòu):beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- 更多的bean的時(shí)候 在引用的xml文件一定是要帶spring dtd頭的文件-->
<import resource="services.xml"/>
</beans>
services.xml
在配置文件里面命名其實(shí)id 和name都是一樣的
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean id="userService" name="userService" class="com.sun.service.UserService">
<property name="name">
<value>sunxin</value>
</property>
</bean>
</beans>
2. 實(shí)例化容器
ApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"beans.xml"});
3. bean的別名
<!--name指向的是已經(jīng)存在該id的bean,alias是給給該bean命的別名-->
<alias name="userService" alias="user"/>
調(diào)用可以通過(guò):
UserService us = (UserService) app.getBean("user");
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java基礎(chǔ)之spring5新功能學(xué)習(xí)
- Java Spring5學(xué)習(xí)之JdbcTemplate詳解
- Java基礎(chǔ)之Spring5的核心之一IOC容器
- SpringBoot+JavaMailSender實(shí)現(xiàn)騰訊企業(yè)郵箱配置
- Spring通過(guò)Java配置集成Tomcat的方法
- java、spring、springboot中整合Redis的詳細(xì)講解
- Java中Spring Boot支付寶掃碼支付及支付回調(diào)的實(shí)現(xiàn)代碼
- Spring的@Validation和javax包下的@Valid區(qū)別以及自定義校驗(yàn)注解
- 最優(yōu)雅地整合 Spring & Spring MVC & MyBatis 搭建 Java 企業(yè)級(jí)應(yīng)用(附源碼)
- Java Spring WEB應(yīng)用實(shí)例化如何實(shí)現(xiàn)
- Java Spring事務(wù)使用及驗(yàn)證過(guò)程詳解
- Spring5學(xué)習(xí)之基礎(chǔ)知識(shí)總結(jié)
相關(guān)文章
java面試突擊之sleep和wait有什么區(qū)別詳析
按理來(lái)說(shuō)sleep和wait本身就是八竿子打不著的兩個(gè)東西,但是在實(shí)際使用中大家都喜歡拿他們來(lái)做比較,或許是因?yàn)樗鼈兌伎梢宰尵€程處于阻塞狀態(tài),這篇文章主要給大家介紹了關(guān)于java面試突擊之sleep和wait有什么區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-02-02
tdesign的文件上傳功能實(shí)現(xiàn)(微信小程序+idea的springboot)
這篇文章主要介紹了tdesign的文件上傳(微信小程序+idea的springboot)的相關(guān)知識(shí),本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-09-09
Java程序?qū)崿F(xiàn)導(dǎo)出Excel的方法(支持IE低版本)
下面小編就為大家?guī)?lái)一篇Java程序?qū)崿F(xiàn)導(dǎo)出Excel的方法(支持IE低版本)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07
Java?處理樹(shù)形結(jié)構(gòu)數(shù)據(jù)的過(guò)程
這篇文章主要介紹了Java?處理樹(shù)形結(jié)構(gòu)數(shù)據(jù)的過(guò)程,本文給大家分析具體實(shí)現(xiàn)過(guò)程,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
jenkins和sonar實(shí)現(xiàn)代碼檢測(cè)過(guò)程詳解
這篇文章主要介紹了jenkins和sonar實(shí)現(xiàn)代碼檢測(cè)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
mybatis-plus的多租戶(hù)不同版本實(shí)現(xiàn)的兩種方式
本文主要介紹了mybatis-plus的多租戶(hù)不同版本實(shí)現(xiàn)的兩種方式,Mybatis Plus 3.4.0版本之后多租戶(hù)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03
spring AOP代理執(zhí)行@EnableAspectJAutoProxy的exposeProxy屬性詳解
這篇文章主要為大家介紹了spring AOP代理執(zhí)行@EnableAspectJAutoProxy的exposeProxy屬性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
簡(jiǎn)單講解java中throws與throw的區(qū)別
這篇文章主要介紹了簡(jiǎn)單講解java中throws與throw的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

