Spring 三种注入方式
来源:互联网 发布:淘宝店怎么开 编辑:程序博客网 时间:2024/05/19 17:59
1.设置注入
先写demo代码
Uer.java
public class User { private String username; private String password; public String getUsername() { return this.username; } public void setUsername(String name) { this.username = name; } public String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; }}UserADO 接口:
public interface UerDAO{ public void save(User user);}UserADOImpl类:
public class UserADOImpl implements UserADO { public void save(User user) { System.out.println(user.getUsername() + user.getPassword()); }}
ADO层是直接和DB打交道,这一层和mybatis或者hibernate结合;我们还要基于ADO创建service层。web工程中,一般分为ADO,service和web等,ADO负责数据的持久化,service负责业务,web层负责UI视图和用户交互。
UserService接口:
public interface UserService { public void add(User user);}UserServiceImpl类
public class UserServiceImpl implements UserService{ private UserDAO userDAO; public void add(User user) { userDAO.save(user); } public UserDAO getUserDAO() { return this.userDAO } public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; }}
配置文件 beans.xml,注入方式关键是在配置文件中配置的!!!!!
<?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" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <!-- 注册一个 UserDAOImpl 对象实例--> <bean id="u" class="com.deciphering.dao.impl.UserDAOImpl"> </bean> <!-- 注册一个 UserServiceImpl 对象实例--> <bean id="userService" class="com.deciphering.dao.service.UserServiceImpl"> <!-- 将UserDAOImpl u 对象实例 注入到 UserServiceImpl 中的userDAO --> <property name="userDAO"> <ref bean="u"> </property> </bean> </beans>
创建测试Junit 用例类 UserServiceTest:
public class UserServiceTest { @Test public void testAdd() throw Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); UserServiceImpl service = (UserServiceImpl) stx.getBean("userService"); User u = new User(); u.setUsername("测试用户"); u.setPassword("123456"); service.add(u); } }
2.构造方式 注入
修改UserServiceImpl.java 增加构造方法
public class UserServiceImpl implements UserService{ private UserDAO userDAO; public UserServiceImpl(UserDAO userDAO) { super(); this.UserDAO = UserDAO; } public void add(User user) { userDAO.save(user); } public UserDAO getUserDAO() { return this.userDAO } public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; }}
beans.xml修改
<?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" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <!-- 注册一个 UserDAOImpl 对象实例--> <bean id="u" class="com.deciphering.dao.impl.UserDAOImpl"> </bean> <!-- 注册一个 UserServiceImpl 对象实例--> <bean id="userService" class="com.deciphering.dao.service.UserServiceImpl"> <!-- 构造方式 将UserDAOImpl u 对象实例 注入到 UserServiceImpl 中的userDAO --> <constructor-arg> <ref bean="u"> </constructor-arg> </bean> </beans>
3.接口注入,我们需要特定的接口交给特定的类去注入,这种方式,带来污染,不能完全解耦。现在已被抛弃
阅读全文
0 0
- Spring三种注入方式
- Spring 三种注入方式
- Spring三种注入方式
- spring 三种注入方式
- spring 三种注入方式
- Spring 三种注入方式
- spring三种注入方式
- Spring 三种方式注入
- Spring三种注入方式
- Spring三种注入IOC注入方式
- Spring三种注入IOC注入方式
- Spring三种注入IOC注入方式
- Spring框架中的三种注入方式
- spring的三种注入方式
- spring依赖注入的三种方式
- Spring IOC三种注入方式比较
- Spring的三种注入方式
- Spring中注入的三种方式
- Git 的origin和master分析
- MVP实现的伪代码——笔记
- SalesforceでDateTimeの間隔計算まとめ
- Unity Learning for Day 14
- ssm图片上传_fhm笔记
- Spring 三种注入方式
- 第四章 INI配置——跟我学习springmvc shiro mybatis
- Android版本迭代
- Python-类的特殊对象属性
- android开发 数据库的使用
- jqgrid-1获取或设置行及单元格的值
- Linux基础(一)
- jboss支持https的配置
- 数据库百万级别的sql优化