當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring 三种注入方式
生活随笔
收集整理的這篇文章主要介紹了
Spring 三种注入方式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.設(shè)置注入
先寫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或者h(yuǎn)ibernate結(jié)合;我們還要基于ADO創(chuàng)建service層。web工程中,一般分為ADO,service和web等,ADO負(fù)責(zé)數(shù)據(jù)的持久化,service負(fù)責(zé)業(yè)務(wù),web層負(fù)責(zé)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,注入方式關(guān)鍵是在配置文件中配置的!!!!! <?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/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/aophttp://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>
創(chuàng)建測試Junit ?用例類 UserServiceTest:
public class UserServiceTest{@Testpublic 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.構(gòu)造方式 注入
修改UserServiceImpl.java ?增加構(gòu)造方法
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/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/aophttp://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"><!-- 構(gòu)造方式 將UserDAOImpl u 對象實例 注入到 UserServiceImpl 中的userDAO --><constructor-arg><ref bean="u"></constructor-arg></bean></beans>
3.接口注入,我們需要特定的接口交給特定的類去注入,這種方式,帶來污染,不能完全解耦?,F(xiàn)在已被拋棄
總結(jié)
以上是生活随笔為你收集整理的Spring 三种注入方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 说说 Spring AOP 原理
- 下一篇: gradle idea java ssm