Spring之命名空间、自动装配、引入外部属性配置文件

文章介绍了Spring框架中p、c和util命名空间的使用,以及自动装配的概念。p命名空间简化了setter方法的属性注入,c命名空间用于构造方法注入,util命名空间则用于配置复用,如数据库配置的共享。此外,还提到了根据名称和类型自动装配bean的方式,以及如何引入外部属性配置文件进行数据库连接信息的管理。
摘要由CSDN通过智能技术生成

1.p命名空间注入

⽬的:简化配置。
使⽤p命名空间注⼊的前提条件包括两个:
        第⼀:在XML头部信息中添加p命名空间的配置信息:
        xmlns:p=" http://www.springframework.org/schema/p"
        第⼆:p命名空间注⼊是基于setter⽅法的,所以需要对应的属性提供setter⽅法。
<?xml version="1.0" encoding="UTF-8"?>
< beans xmlns = "http://www.springframework.org/schema/beans"
                 xmlns:p="http://www.springframework.org/schema/p"
                xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation = "http://www.springframework.org/schema/beans htt
p://www.springframework.org/schema/beans/spring-beans.xsd" >
        < bean id = "customerBean" class = "lin.spring .Customer" p:name="zhangsan" p:age="20" />
</ beans >

2.C命名空间注入

c命名空间是简化构造⽅法注⼊的。
使⽤c命名空间的两个前提条件:
        第⼀:需要在xml配置⽂件头部添加信息 xmlns: c ="http://www.springframework.org/schema/c"
        第⼆:需要提供构造⽅法。
<?xml version="1.0" encoding="UTF-8"?>
< beans xmlns = "http://www.springframework.org/schema/beans"
                xmlns:c = "http://www.springframework.org/schema/c"
                xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation = "http://www.springframework.org/schema/beans htt
p://www.springframework.org/schema/beans/spring-beans.xsd" >
        <!--<bean id="myTimeBean" class="com.powernode.spring6.beans.MyTime"
c:year="1970" c:month="1" c:day="1"/>-->
        < bean id = "myTimeBean" class = "lin.spring .MyTime" c:_0 = "2008" c:_1 = "8" c:_2 = "8" />
</ beans >
注意:不管是p命名空间还是c命名空间,注⼊的时候都可以注⼊简单类型以及⾮简单类型。

3.util命名空间

使⽤util命名空间可以让 配置复⽤ 。当两个类需要同样的数据时,例如在数据库的选配上,两个类连接的是同一个数据库
使⽤util命名空间的前提是:在spring配置⽂件头部添加配置信息。如下:
<?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:util="http://www.springframework.org/schema/util"
xsi:schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
< util:properties id = "prop" >
        < prop key = "driver" >com.mysql.cj.jdbc.Driver</ prop >
        < prop key = "url" >jdbc:mysql://localhost:3306/spring</ prop >
        < prop key = "username" >root</ prop >
        < prop key = "password" >123456</ prop >
</ util:properties >
< bean id = "dataSource1" class = "lin.spring .MyDataSource1" >
        < property name = "properties" ref = "prop" />
</ bean >
< bean id = "dataSource2" class = "lin.spring .MyDataSource2" >
        < property name = "properties" ref = "prop" />
        </ bean >
</ beans >

4.根据名称自动装配

< bean id = "userService" class = "lin.spring .UserService" autowire = "byName" />
< bean id = "aaa" class = "lin.spring .UserDao" />
这个配置起到关键作⽤:
UserService Bean中需要添加autowire="byName",表示通过名称进⾏装配。
UserService类中有⼀个UserDao属性,⽽UserDao属性的名字是aaa, 对应的set⽅法是setAaa()
正好和UserDao Bean的id是⼀样的。这就是根据名称⾃动装配。

5.根据类型自动装配

<!--byType 表示根据类型⾃动装配 -->
< bean id = "accountService" class = "lin.spring .AccountService" autowire = "byType" />
< bean class = "lin.spring .AccountDao" />

6.spring引⼊外部属性配置文件

编写数据源的时候是需要连接数据库的信息的,例如:driver url username password等信
息。这些信息可以单独写到⼀个属性配置⽂件中,这样⽤户修改起来会更加的⽅便。
第⼀步:写⼀个数据源类,提供相关属性
第⼆步:在类路径下新建jdbc.properties⽂件,并配置信息。
driver =com.mysql.cj.jdbc.Driver
url =jdbc:mysql://localhost:3306/spring
username =root
password =root123
第三步:在spring配置⽂件中引⼊context命名空间
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
第四步:在spring中配置使⽤jdbc.properties⽂件。
< context:property-placeholder location = "jdbc.properties" />
< bean id = "dataSource" class = "com.powernode.spring6.beans.MyDataSource" >
        < property name = "driver" value = "${driver}" />
        < property name = "url" value = "${url}" />
        < property name = "username" value = "${username}" />
        < property name = "password" value = "${password}" />
</ bean >
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值