Bean的依赖注入方式

tech2024-10-15  30

①构造方法

​ 创建有参构造

public class UserServiceImpl implements UserService { @Override public void save() { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); UserDao userDao = (UserDao) applicationContext.getBean("userDao"); userDao.save(); } }

配置Spring容器调用有参构造时进行注入

<bean id="userDao" class="com.leon.dao.impl.UserDaoImpl"/> <bean id="userService" class="com.leon.service.impl.UserServiceImpl"> <constructor-arg name="userDao" ref="userDao"></constructor-arg> </bean>

②set方法

​ 在UserServiceImpl中添加setUserDao方法

public class UserServiceImpl implements UserService { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } @Override public void save() { userDao.save(); } }

配置Spring容器调用set方法进行注入

<bean id="userDao" class="com.leon.dao.impl.UserDaoImpl"/> <bean id="userService" class="com.leon.service.impl.UserServiceImpl"> <property name="userDao" ref="userDao"/> </bean>

set方法:P命名空间注入

​ P命名空间注入本质也是set方法注入,但比起上述的set方法注入更加方便,主要体现在配置文件中,如下:

​ 首先,需要引入P命名空间:

xmlns:p="http://www.springframework.org/schema/p"

其次,需要修改注入方式

<bean id="userService" class="com.leon.service.impl.UserServiceImpl" p:userDao- ref="userDao"/>

 

最新回复(0)