}
}
<! --装配实例工厂–>
静态方法:无须创建工厂类实例的情况下就可以调用工厂类方法
//静态工厂
public class DAOFactory {
public static TopicDAO getTopicDAO(){
return new TopicDAOImpl();
}
public static UserDAO getUserDAO(){
return new UserDAOImpl();
}
}
public class UserServiceImpl implements UserService{
private UserDAO userDAO=DAOFactory.getUserDAO();
private TopicDAO topicDAO=DAOFactory.getTopicDAO();
public void addUser() {
userDAO.addUser();
}
public void delUser() {
userDAO.delUser();
}
//setter 初始化 UserDAO
public void setUserDAO(UserDAO userDAO) {
System.out.println(“通过setter”);
this.userDAO = userDAO;
}
factory-bean:用于实例化工厂类;
factory-method:用于调用工厂类方法。
package com.xbj.po;
public class Address {
private String city;
private String area;
private Integer code;
//getter setter
}
package com.xbj.po;
public class User {
private String name;
private Integer age;
private Address address;
//getter setter
}
<?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 https://www.springframework.org/schema/beans/spring-beans.xsd">
public class Test01 {
@Test
public void t1(){
ApplicationContext context=new ClassPathXmlApplicationContext(“spring/applicationContext.xml”);
User user=context.getBean(“user”, User.class);
System.out.println(user.getName());
}
@Test
public void t2(){
ApplicationContext context=new ClassPathXmlApplicationContext(“spring/applicationContext.xml”);
User user=context.getBean(“user”, User.class);
System.out.println(user.getAddress().getCity());
}
@Test
public void t3(){
}
}
默认情况下(没有指定特定的构造装配Bean) Spring容器 通过 空构造 创造对象,如果没有空构造,会报错:找不到默认的构造
public class Address {
private String city;
private String area;
private Integer code;
public Address() {
}
public Address(String area, Integer code) {
this.area = area;
this.code = code;
}
public Address(String city, String area) {
this.city = city;
this.area = area;
}
//getter setter
//applicationContext.xml
//Junit 注解 的方法必须是public的
private ApplicationContext context;
@Before
public void init(){
context=new ClassPathXmlApplicationContext(“spring/applicationContext-2.xml”);
}
@Test
public void t1(){
Address address=context.getBean(“address”, Address.class);
System.out.println(address);
}
简化setter方法的装配
public class Address {
private String city;
private String area;
private Integer code;
//getter setter
约束文件添加 xmlns:p=“http://www.springframework.org/schema/p”
<?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:p=“http://www.springframework.org/schema/p”
xsi:schemaLocation="
http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class=“com.mchange.v2.c3p0.ComboPooledDataSource” id=“comboPooledDataSource” p:jdbcUrl=""
p:driverClass="" p:user="" p:password="" />
3.6 集合的装配
装配 List Set Array
public class User
{
private List hobbies;
private String[] books;
private Set nums;
//getter setter
sanguo
shuihu
11
22