三层架构基于xml的自动装配

三层架构基于xml的自动装配

徐徐
后端
发布于2023-09-25 01:14:44
🌺前言
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
留言
暂无数据

~~空空如也