spring基于Xml管理bean---自动装配

spring基于xml管理自动装配的两种方式


pring基于xml管理自动装配的两种方式

代码案列:

dao:

– dao接口

package com.guigu.auto.dao;

public interface UserDao {
   

    public      void addUserDao();
}

–dao实现类:

package com.guigu.auto.dao;

public class UserDaoImpl implements  UserDao {
   
    public void addUserDao() {
   
        System.out.println("实现userdao接口");
    }
}

service:

– serviec接口:

package com.guigu.auto.service;

public interface UserService {
   

    public  void addUserService();
}

–service实现类:

package com.guigu.auto.service;

import com.guigu.auto.dao.UserDao;
import com.guigu.auto.dao.UserDaoImpl;

public class UserServiceImpl implements UserService {
   

private  UserDao userDao;

    public void setUserDao(UserDao userDao) {
   
        this.userDao = userDao;
    }

    public void addUserService() {
   
        System.out.println("执行addUserService");
        //调用userdao中的方法
        userDao.addUserDao();
//        UserDao userDao = new UserDaoImpl();
//        userDao.addUserDao();
    }
}

controller:

package com.guigu.auto.controller;

import com.guigu.auto.service.UserService;
import com.guigu.auto.service.UserServiceImpl;

public class UserController {
   

    //定义service属性生成set方法

    private  UserService userService;

    public void setUserService(UserService userService) {
   
        this.userService = userService;
    }

    public  void UserController(){
   

        //调用UserService中的方法

        userService.addUserService();

        System.out.println("UserController方法执行了-----");
//        UserService userService = new UserServiceImpl();
//        userService.addUserService();
    }
}

bean.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">


    <!--autowire="byType":根据类型自动注入

    autowire="byName:根据名字自动注入"-->
    <bean id="userController" class="com.guigu.auto.controller.UserController" autowire="byType">

    </bean>
    <bean id="userService" class="com.guigu.auto.service.UserServiceImpl" autowire="byType">

    </bean>
    <bean id="userDao" class="com.guigu.auto.dao.UserDaoImpl">

    </bean>
</beans>

第一种方式:根据类型自动配置—autowire=“byType”

   <bean id="userController" class="com.guigu.auto.controller.UserController" autowire="byType">

    </bean>

第二种:根据名称自动配置–auto=“byName”

   <bean id="userController" class="com.guigu.auto.controller.UserController" autowire="byName">

    </bean>

spring中Byname和Bytype区别:

**byName:根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。

byType:如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配;如果存在多个该类型bean,那么抛出异常,并指出不能使用byType方式进行自动装配;如果没有找到相匹配的bean,则什么事都不发生,也可以通过设置**

扩展知识

spring自动配置两种方式

相关推荐

  1. spring基于Xml管理bean---自动装配

    2023-12-26 06:56:05       69 阅读
  2. Spring——自动装配Bean

    2023-12-26 06:56:05       25 阅读
  3. spring基于xmlbean管理总结

    2023-12-26 06:56:05       61 阅读
  4. Spring 学习2 --基于xml管理Bean

    2023-12-26 06:56:05       48 阅读
  5. Spring 之 IoC基于XML管理Bean

    2023-12-26 06:56:05       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-26 06:56:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-26 06:56:05       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-26 06:56:05       87 阅读
  4. Python语言-面向对象

    2023-12-26 06:56:05       96 阅读

热门阅读

  1. mybatis中xml接收参数值

    2023-12-26 06:56:05       59 阅读
  2. React+umi+antdesign实现上传文件组件(阿里云)

    2023-12-26 06:56:05       51 阅读
  3. Python:GUI & Tkinter

    2023-12-26 06:56:05       54 阅读
  4. 第二百二十八回

    2023-12-26 06:56:05       61 阅读
  5. Microsoft Edge的详细使用方法和心得

    2023-12-26 06:56:05       52 阅读
  6. 一个WebSocket的自定义hook

    2023-12-26 06:56:05       59 阅读