🌺
摘要
spring之三层架构基于xml的自动装配
1.手动装配
<bean id="userController" class="com.study.spring.controller.UserController">
<property name="userService" ref="userService"></property>
</bean>
<bean id="userService" class="com.study.spring.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
</bean>
<bean id="userDao" class="com.study.spring.dao.impl.UserDaoIml"></bean>
controller
public class UserController {
UserService userService;
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public void saveUser(){
userService.saveUser();
}
}
service
public class UserServiceImpl implements UserService {
UserDao userDao;
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void saveUser() {
userDao.saveUser();
}
}
dao
public class UserDaoIml implements UserDao {
public void saveUser(){
System.out.println("保存成功");
}
}
public void test(){
ApplicationContext ioc = new ClassPathXmlApplicationContext("autoWired.xml");
UserController controller = ioc.getController(UserController.class);
controller.saveUser();
}
2.自动装配
ioc会为bean的接口或者类类型自动匹配其他bean,自动赋值 需要配置bean的属性autowire指定自动装配类型 default,no表示说不自动装配. byType:根据类型匹配.常用 a.找到多个报错, b.一个都没匹配到则不赋值,使用默认值null c.所以有且一个要匹配
<bean id="userController" class="com.study.spring.controller.UserController" autowire="byType">
<!-- <property name="userService" ref="userService"></property>-->
</bean>
<bean id="userService" class="com.study.spring.service.impl.UserServiceImpl" autowire="byType">
<!-- <property name="userDao" ref="userDao"></property>-->
</bean>
<bean id="userDao" class="com.study.spring.dao.impl.UserDaoIml"></bean>
byName: 就是根据要赋值的属性名去匹配id
<bean id="userController" class="com.study.spring.controller.UserController" autowire="byName">
<!-- <property name="userService" ref="userService"></property>-->
</bean>
<bean id="userService" class="com.study.spring.service.impl.UserServiceImpl" autowire="byName">
<!-- <property name="userDao" ref="userDao"></property>-->
</bean>
<bean id="userDao" class="com.study.spring.dao.impl.UserDaoIml"></bean>
文章发表于 2024/08/30 16:46
评论
加载中...