注解和自动装配

    xiaoxiao2021-03-26  30

    1、在applicationContext.xml配置

    <?xml version="1.0" encoding="UTF-8"?> <!-- 在配置文件 引入约束 xsd schema 约束 --> <beans xmlns="http://www.springframework.org/schema/beans"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        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"> <!-- 通过xml 配置bean --> <bean id="orderService" class="cn.itcast.spring.d_mixed.OrderService" /> <bean id="orderDAO" class="cn.itcast.spring.d_mixed.OrderDAO" /> <!-- 使用注解依赖注入 --> <context:annotation-config />

    <!--通知spring容器,注解Bean所在位置-->

    <context:component-scan bese - package="com.china,xxxxx"/> </beans>

    补充:注解和配置文件混合使用

    Bean定义配置,使用配置文件方式

    Bean关系依赖注入,使用注解配置方式

    如果在配置使用 context:component-scan 具有 context:annotation-config 效果

     

    如果Bean是通过xml配置,想使用注解依赖注入,必须单独配置

    <context:annotation-config />

    2、在类进行标注

    除了@Component外,Spring提供了3个功能基本和@Component等效的注解 @Repository 用于对DAO实现类进行标注 @Service 用于对Service实现类进行标注 @Controller 用于对Controller实现类进行标注

    目的:为了让标注类本身的用途清晰

    例子:

         /**业务对象**/

    //xml配置<bean id="xxxx" class="xxxxx">

    //@Component("userService")    当中 userService 相当于bean id属性

    @Service("userService")

    public class UserService{

    }

    补充:

    指定bean的作用范围:

    使用注解配置的Bean和<bean>配置的一样,默认作用范围都是singleton @Scope注解用于指定Bean的作用范围

    例子:

    @Component

    @Sope(“prototype”)

    public class Car{

      //内部代码

    }

    3、自动装配

    使用@Autowired进行自动注入

    @Autowired 默认按照类型进行注入 如果存在两个相同Bean类型相同,则按照名称注入

    @Autowired注入时可以针对成员变量或者setter方法

    例子:

    UserService类:

        @Service

       public class UserService{

      @Autowired

       private UserDao userDao;

    pubilc void regist(){

      userDao.save();

    }

     

    UserDao类:

     @Repository

     public class UserDao{

       public void save(){

           System.out,,println("Save ...");

    }

    }

    转载请注明原文地址: https://ju.6miu.com/read-663676.html

    最新回复(0)