Docker在学了在学了
接上一篇
IOC注入方式其二:使用有参构造注入
Order类
public class Order {
private String oname;
private String address;
public Order(String oname,String address){
this.oname = oname;
this.address = address;
}
public void orderTest(){
System.out.println("订单名称:"+oname+" 订单地址:"+address);
}
}
xml配置文件中需要加入
<bean id="order" class="com.day2.spring5.Order">
<constructor-arg name="oname" value="电脑"></constructor-arg>
<constructor-arg name="address" value="China"></constructor-arg>
</bean>
测试类
@Test
public void testOrder(){
// 1 加载Spring配置文件
ApplicationContext context =
new ClassPathXmlApplicationContext("com/day2/spring5/bean1.xml");
// 2 获取配置创建的对象
Order order = context.getBean("order",Order.class);
// 3 输出配置创建的对象
System.out.println(order);
order.orderTest();
}
/************************/
输出为:
com.day2.spring5.Order@569cfc36
订单名称:电脑 订单地址:China
一些其他属性
字面量
1、null值
<property name="bname">
<null/>/* 直接用这个标签就好*/
</property>
2、包含特殊符号的属性
<property name="bname">
<value><![CDATA[<<南京>>]]></value>
/*![CDATA[包含特殊符号的值]*/
</property>
外部bean的注入
个人觉得这个最好用
UserService类
public class UserService {
private UserDao userDao;
private void setUserDao(UserDao userDao){
this.userDao = userDao;
}
public void add(){
System.out.println("service......");
}
}
UserDao
public class UserDao {
public void update(){
System.out.println("dao update......");
}
}
xml配置文件
<bean id="userDao" class="com.day2.spring5.dao.UserDao"></bean>
<bean id="userService" class="com.day2.spring5.service.UserService">
<!--
注入UserDao对象
name:类里面属性名称
ref:创建UserDao对象bean标签的id值
-->
<property name="userDao" ref="userDao"></property>
</bean>
级联赋值
对关系的分析
- 一对多:部门和员工
- 在实体类之间的一对多关系
//部门类
public class Dept {
private String dname;
public void setDname(String dname) {
this.dname = dname;
}
public String getDeptName(){
return this.dname;
}
}
//员工类
public class Emp {
private String ename;
private String gender;
private Dept dept;
public void setEname(String ename) {
this.ename = ename;
}
public void setGender(String gender) {
this.gender = gender;
}
public void setDept(Dept dept) {
this.dept = dept;
}
public void test(){
System.out.println("员工名称:"+ename+" 性别:"+gender+" 部门名称:"+dept.getDeptName());
}
}
//xml配置文件
<bean id="emp" class="com.qy.spring5.DeptTest.Emp">
<property name="ename" value="lucy"></property>
<property name="gender" value="女"></property>
<property name="dept">
<bean id="dep" class="com.day2.spring5.DeptTest.Dept">
<property name="dname" value="安保部"></property>
</bean>
</property>
</bean>
//测试类
@Test
public void testOrder(){
// 1 加载Spring配置文件
ApplicationContext context =
new ClassPathXmlApplicationContext("com/day2/spring5/bean2.xml");
// 2 获取配置创建的对象
Emp emp = context.getBean("emp", Emp.class);
// 3 输出配置创建的对象
System.out.println(emp);
emp.test();
}
//输出结果
com.qy.spring5.DeptTest.Emp@66d1af89
注入属性:级联赋值
<!--级联赋值-->
<bean id="emp" class="com.qy.spring5.DeptTest.Emp">
<!--设置两个普通属性-->
<property name="ename" value="lucy"></property>
<property name="gender" value="女"></property>
<!--级联赋值-->
<property name="dept" ref="dept"></property>
<!--dept.name用于设置dept的name,需要给Dept类上添加Dept的get方法-->
<property name="dept.name" value="技术部"></property>//此处必须实现get方法
</bean>
<bean id="dept" class="com.qy.spring5.DeptTest.Dept">
<property name="dname" value="财务部"></property>
</bean>
今天暂且到这,上班不可以摸鱼...