🌺前言
spring之三层架构基于xml的自动装配
1.手动装配
xml
<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>
java
controller
public class UserController {
UserService userService;
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public void saveUser(){
userService.saveUser();
}
}
java
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();
}
}
java
dao
public class UserDaoIml implements UserDao {
public void saveUser(){
System.out.println("保存成功");
}
}
java
public void test(){
ApplicationContext ioc = new ClassPathXmlApplicationContext("autoWired.xml");
UserController controller = ioc.getBean(UserController.class);
controller.saveUser();
}
2.自动装配
ioc会为bean的接口或者类类型自动匹配其他bean,自动赋值 需要配置bean的属性autowire指定自动装配类型 default,no表示说不自动装配. byType:根据类型匹配.常用 a.找到多个报错, b.一个都没匹配到则不赋值,使用默认值null c.所以有且一个要匹配
xml
<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
xml
<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:45
作者:徐徐版权声明:转载请注明文章出处