Spring深入了解常用配置應(yīng)用
常用配置
現(xiàn)在這里簡單了解一下spring 配置文件中的一些常用配置,在后面我們還會遇到更多的配置,在后文繼續(xù)進(jìn)行介紹了。

spring中的配置一共也就這幾個(gè)
- description描述不太重要,
- bean在之前已經(jīng)見識過了,
- alias給bean起別名,
- import在當(dāng)前xml文件中導(dǎo)入其他xml文件
一、別名
在spring中別名主要是給bean的id起一個(gè)別名,同樣也有好幾種方式。
1、alias 配置
<alias name="user" alias="u"/>
alias是給bean的id起別名
- name 是bean的id
- alias 是bean的別名
(1)先定義普通實(shí)體類
package com.kuang.pojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class User {
private int id;
private String userName;
private String password;
}(2)在配置文件中裝配bean,并定義bean的別名
<?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.xsd">
<alias name="user" alias="u"/>
<bean id="user" class="com.kuang.pojo.User">
<property name="id" value="1"/>
<property name="userName" value="root"/>
<property name="password" value="123456"/>
</bean>
</beans>(3)通過別名也能拿到裝配的bean
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
User user = context.getBean("u",User.class);
System.out.println(user);
}
(4)查看運(yùn)行結(jié)果

二、bean 的配置
也可以通過bean來配置別名,而且可以給一個(gè)bean 配置多個(gè)別名
<bean id="user" class="com.kuang.pojo.User" name="u1,u2,u3,u4">
<property name="id" value="1"/>
<property name="userName" value="root"/>
<property name="password" value="123456"/>
</bean>name就是給當(dāng)前bean配置別名,可以多個(gè)別名寫在一起,中間使用空格/逗號/分號進(jìn)行分割,spring都能識別
三、import
在團(tuán)隊(duì)開發(fā)使用中,還是非常常見的。它可以將多個(gè)配置文件,導(dǎo)入合成一個(gè)
假設(shè)一個(gè)團(tuán)隊(duì)中有多個(gè)人進(jìn)行開發(fā),這三個(gè)人負(fù)責(zé)不同類的開發(fā),不同的類需要注冊到不同的bean中
- 張三 beans1.xml
- 李四 beans2.xml
- 王五 beans3.xml
我們可以利用import 將所有人的beans.xml合并成一個(gè)總的ApplicationContext.xml ,最后使用的時(shí)候使用總的配置文件即可。
張三負(fù)責(zé) User類 以及注冊到bean1.xml文件中
User類
package com.kuang.pojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class User {
private int id;
private String userName;
private String password;
}bean1.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.xsd">
<bean id="user" class="com.kuang.pojo.User">
<property name="id" value="1"/>
<property name="userName" value="root"/>
<property name="password" value="123456"/>
</bean>
</beans>李四負(fù)責(zé) Student類,bean2.xml
Stduent 類
package com.kuang.pojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Setter
@Getter
@ToString
public class Student {
private int id;
private String name;
private String sex;
}bean2.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.xsd">
<bean id="student" class="com.kuang.pojo.Student">
<property name="id" value="1"/>
<property name="name" value="張三"/>
<property name="sex" value="男"/>
</bean>
</beans>總的ApplicationContext.xml配置文件,導(dǎo)入了bean1.xml 和 bean2.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.xsd">
<import resource="bean1.xml"/>
<import resource="bean2.xml"/>
</beans>使用的時(shí)候,使用總的配置文件即可
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
User user = context.getBean("user",User.class);
Student student = context.getBean("student",Student.class);
System.out.println(user);
System.out.println(student);
}
存在問題
同時(shí)使用import還存在幾個(gè)問題 導(dǎo)入bean 的id沖突
如果導(dǎo)入的文件中有多個(gè)重名id相同的bean
如果總配置文件中有取這個(gè)bean
如果在導(dǎo)入的xml文件中,因?yàn)閷?dǎo)入的時(shí)候id相同的bean會不斷覆蓋,同名的bean后面的xml會覆蓋前面的 xml,所以最后取的是最后導(dǎo)入這個(gè)id的xml文件中的bean
總結(jié)
與主配置中的id重名,調(diào)用主配置中的id;
多個(gè)import中配置中的id重名,調(diào)用最后import中配置中的id重名,即后面的覆蓋前面的;
到此這篇關(guān)于Spring深入了解常用配置應(yīng)用的文章就介紹到這了,更多相關(guān)Spring常用配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)word/pdf轉(zhuǎn)html并在線預(yù)覽
這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實(shí)現(xiàn)word、pdf文件轉(zhuǎn)html并在線預(yù)覽的功能,文中的示例代碼講解詳細(xì),需要的可以參考一下2023-05-05
Spring boot如何集成kaptcha并生成驗(yàn)證碼
這篇文章主要介紹了Spring boot如何集成kaptcha并生成驗(yàn)證碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
詳解Java實(shí)現(xiàn)緩存(LRU,FIFO)
本篇文章主要介紹了詳解Java實(shí)現(xiàn)緩存(LRU,FIFO) ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04
Java8與Scala中的Lambda表達(dá)式深入講解
這篇文章主要給大家介紹了關(guān)于Java8與Scala中Lambda表達(dá)式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11

