spring自動裝配
阿新 • • 發佈:2017-05-07
system test .org byname color public save cut 一個
1.
自動裝配: byName或byType
2. spring.xml中設置全局是byName自動裝配
<?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:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" default-autowire="byName"> <!-- ###############自動裝配############### --> <bean id="userDao" class="cn.itcast.d_auto.UserDao"></bean> <bean id="userService" class="cn.itcast.d_auto.UserService"></bean> <!-- 如果根據類型自動裝配: 必須確保IOC容器中只有一個該類型的對象 --> <bean id="userAction" class="cn.itcast.d_auto.UserAction"></bean> <!-- 報錯: 因為上面已經有一個該類型的對象,且使用了根據類型自動裝配 <bean id="userService_test" class="cn.itcast.d_auto.UserService" autowire="byType"></bean> --> </beans>
3.測試類
public class App { // 創建容器對象 private ApplicationContext ac = new ClassPathXmlApplicationContext("cn/itcast/d_auto/bean.xml"); @Test public void testExecuteAction() { // 從容器中獲取Action UserAction userAction = (UserAction) ac.getBean("userAction"); userAction.execute(); } }
4. 控制層
public class UserAction { private UserService userService; public void setUserService(UserService userService) { this.userService = userService; } public String execute() { userService.save(); return null; } }
5. 業務邏輯
public class UserService { private UserDao userDao; // = new UserDao(); public void setUserDao(UserDao userDao) { this.userDao = userDao; } public void save() { userDao.save(); } }
6.持久層
public class UserDao { public void save() { System.out.println("DB:保存用戶..."); } }
spring自動裝配