spring中bean的实例化的三种方式
1.构造方法(默认)
接口:
public interface UserDaoIfac {
public abstract void addUser();
}
接口的实现类:
public class UserDao implements UserDaoIfac {
@Override
public void addUser()
{
System.out.println("addUser method....");
}
public UserDao()
{
System.out.println("UserDao 被实例化了");
}
}
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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
//重点在这里
<bean id="userDao" class="com.xxx.test.UserDao"/>
</beans>
2.静态工厂方法
接口和实现类与前面一样多的是一个工厂类
public class DaoFactory {
public static UserDaoIfac getUserDao()
{
System.out.println("静态工厂方法被调用。。。");
return new UserDao();
}
}
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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
//重点在这
<bean id="userDao" class="com.xxx.test.DaoFactory" factory-method="getUserDao"/>
</beans>
3.非静态工厂方法
工厂类:
public class DaoFactory {
public UserDaoIfac getUserDao()
{
System.out.println("工厂方法被调用。。。");
return new UserDao();
}
}
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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
//重点在这
<bean id="daoFactory" class="com.neuedu.test.DaoFactory"/>
<bean id="userDao" factory-bean="daoFactory" factory-method="getUserDao"/>
</beans>