Bean的创建方式
1、使用构造器创建bean(最常用,90%都用此方式)
使用构造器方式创建bean,要求bean必须有默认的构造器。
User类
package com.lynn.spring.model;
public class User {
private Integer userId;
private String username;
//默认构造器
public User() {
System.out.println("user被创建");
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
ApplicationContext.xml文件中bean的配置<bean id="user" class="com.lynn.spring.model.User"></bean>
<!-- 我们必须指定id,唯一标识,class是bean的类的全路径 -->
测试类代码
package com.lynn.spring.test;
import static org.junit.Assert.*;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.lynn.spring.dao.UserDao;
import com.lynn.spring.model.User;
import com.lynn.spring.service.UserService;
import com.lynn.spring.service.Impl.UserServiceImpl;
public class TestSpring {
@Test
public void test() {
//初始化spring容器
ApplicationContext ctx=new ClassPathXmlApplicationContext("ApplicationContext1.xml");
//获得bean
User user=(User) ctx.getBean("user");
System.out.println(user);
}
}
2、使用静态工厂方式创建(不常用)
步骤:(1)提供静态工厂(2)配置ApplicationContext.xml文件
User类同上
静态工厂类
package com.lynn.spring.factory;
import com.lynn.spring.dao.UserDao;
import com.lynn.spring.dao.impl.UserDaoImpl;
import com.lynn.spring.model.User;
public class FactoryBean {
/*
* 必须是静态工厂
*/
public static User createUser(){
return new User();
}
}
ApplicationContext.xml文件<!--
id:唯一标识
class:静态工厂的类
factory-method:静态工厂的方法
-->
<bean id="user" class="com.lynn.spring.factory.FactoryBean" factory-method="createUser"></bean>
测试类代码同上
3、使用实例工厂方式创建(不常用)
步骤:(1)实例工厂(2)配置ApplicationContext.xml文件
User类同上
实例工厂类
package com.lynn.spring.factory;
import com.lynn.spring.dao.UserDao;
import com.lynn.spring.dao.impl.UserDaoImpl;
import com.lynn.spring.model.User;
public class FactoryBean1 {
public User createUser(){
return new User();
}
}
ApplicationContext.xml文件
<!-- 通过spring来实例工厂 -->
<bean id="factoryBean" class="com.lynn.spring.factory.FactoryBean1"></bean>
<!-- 指定要创建的bean
factory-bean:指定实例工厂类
factory-method:工厂创建bean的方法
-->
<bean id="user" factory-bean="factoryBean" factory-method="createUser"></bean>
测试类代码同上