SpringBean的配置详解
- Bean的实例化配置
- Spring的实例化方法主要由以下两种
- 构造方法实例化:底层通过构造方法对bean进行实例化
- 构造方法实例化bean又分为无参方法实例化和有参方法实例化,在Spring中配置的<bean>几乎都是无参构造该方式,在此处不赘述。下面讲解有参构造方法实例化Bean
- 在配置文件中为有参构造方法中的参数指定值
-
<?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 http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="userService" class="com.example.Service.Impl.UserServiceImpl"><constructor-arg name="name" value="hahaha"></constructor-arg><property name="userDAO" ref="userDAO"></property></bean><bean id="userDAO" class="com.example.DAO.UserDAO"></bean> </beans>
-
package com.example.Service.Impl;import com.example.DAO.UserDAO; import com.example.Service.UserService;public class UserServiceImpl implements UserService {// todo 无参构造方法public UserServiceImpl() {System.out.println("无参构造方法");}// todo 有参构造方法public UserServiceImpl(String name) {System.out.println("有参构造方法");System.out.println(name);}private UserDAO userDAO;public void setUserDAO(UserDAO userDAO) {}}
-
测试类运行结果
-
package com.example.Test;import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestApplicationContext {public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application.xml");Object userService1 = context.getBean("userService");System.out.println(userService1);context.close();} }
- 构造方法实例化bean又分为无参方法实例化和有参方法实例化,在Spring中配置的<bean>几乎都是无参构造该方式,在此处不赘述。下面讲解有参构造方法实例化Bean
- 工厂方法实例化:底层通过自定义的工厂方法对Bean进行实例化
- 静态工厂方法实例化Bean
- 自定义一个工厂,工厂内部自定义静态方法,在状态方法内部产生一个bean,最后bean交给Spring容器管理
- 实例工厂方法实例化Bean
- 实现FactoryBean规范延迟实例化Bean
- 静态工厂方法实例化Bean
- 构造方法实例化:底层通过构造方法对bean进行实例化
- Spring的实例化方法主要由以下两种
P18