spring属性注入

使用有参数构造注入

1 创建类,定义属性,生成有参数构造

/**

 * 有参数构造注入

 * @author asus

 *

 */

public class Book {

private String bname;

private String author;

 

//生成有参数构造

public Book(String bname, String author) {

this.bname = bname;

this.author = author;

}

 

public void add() {

System.out.println("book:"+bname+"::"+author);

}

}

 

2 配置属性注入

<!-- 使用有参数构造注入 -->

<bean id="book" class="cn.attr.Book">

<!-- 体现有参数构造

name: 属性名称

value:设置值

-->

<constructor-arg name="bname" value="易筋经"></constructor-arg>

<constructor-arg name="author" value="小王"></constructor-arg>

</bean>

使用set方法注入

1 创建类,定义属性,生成属性set方法

/**

 * set方法注入

 * @author asus

 *

 */

public class Orders {

 

private String oname;

private String oaddress;

//生成set方法

public void setOname(String oname) {

this.oname = oname;

}

public void setOaddress(String oaddress) {

this.oaddress = oaddress;

}

 

public void add() {

System.out.println("orders:"+oname+"::"+oaddress);

}

}

 

2 配置属性注入

<!-- set方法注入 -->

<bean id="orders" class="cn.attr.Orders">

<!-- name: 属性名称

value:设置值 -->

<property name="oname" value="洗髓经"></property>

<property name="oaddress" value="嵩山"></property>

</bean>

注入对象类型属性(重点)

第一步 在service定义dao类型属性

public class UserService {

 

//目的:在service获取dao对象

//把dao对象注入到service

 

//1 定义UserDao类型属性

private UserDao userDao;

//2 生成set方法

public void setUserDao(UserDao userDao) {

this.userDao = userDao;

}

 

第二步 实现配置

<!-- 注入对象类型属性 -->

<bean id="userDaoImpl" class="cn.itcastUserDao"></bean>

 

<bean id="userService" class="cn.itcast.UserService">

<!-- 如果注入普通类型属性 使用value属性 ,如果注入对象类型属性,使用ref属性

name: 类里面的属性名称

ref:dao对象所在标签id值

-->

<property name="userDao" ref="userDaoImpl"></property>

</bean> 

p名称空间注入

public class Person{
    private String pname;
    public void setPname(String pname){
        this.pname=pname;
    }
}
引入p名称空间

xmlns:p="http://www.springframework.org/schema/p"

<bean id="person" class="cn.peoperty.Person" p:pname="lucy"></bean>

(1)spring2.x以下版本,不能使用p名称空间注入

Spel注入

写法: #{值}

public class Person{
    private String pname;
    public void setPname(String pname){
        this.pname=pname;
    }
}

<bean id="person" class="cn.property.Person>
    <property name="pname" value="#{'value'}"></property >
</bean>

注入复杂类型属性

1 数组

2 List集合

3 Map集合

4 Properties

/**

 * 复杂类型属性

 * @author asus

 *

 */

public class Customer {

 

//定义属性

private String[] arrs;

private List<String> list;

private Map<String,String> map;

private Properties properties;

//set方法

public void setArrs(String[] arrs) {

this.arrs = arrs;

}

public void setList(List<String> list) {

this.list = list;

}

public void setMap(Map<String, String> map) {

this.map = map;

}

public void setProperties(Properties properties) {

this.properties = properties;

}

 

public void find() {

System.out.println("arrs: "+Arrays.toString(arrs));

System.out.println("list: "+list);

System.out.println("map: "+map);

System.out.println("properties: "+properties);

}

}

 

<bean id="customer" class="cn.itcast.attr.Customer">

<!-- 数组 -->

<property name="arrs">

<list>

<value>lucy</value>

<value>mary</value>

<value>jack</value>

</list>

</property>

 

<!-- list -->

<property name="list">

<list>

<value>小王</value>

<value>小金</value>

<value>小奥</value>

</list>

</property>

 

<!-- map-->

<property name="map">

<map>

<entry key="football" value="足球"></entry>

<entry key="basketball" value="篮球"></entry>

</map>

</property>

 

<!-- properties -->

<property name="properties">

<props>

<prop key="driverClass">com.mysql.jdbc.Driver</prop>

<prop key="jdbcUrl">jdbc:mysql:///day01</prop>

</props>

</property>

</bean>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值