Spring Bean的注入有简单的方式吗?

通过配置的方式注入,往往太麻烦,实际工作中一般不会采取麻烦的方式,因为时间就是金钱,时间决定你是否加班,那是否有更简单的方式去注入呢?当然有!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KsAd3bSb-1601361223083)(https://imgkr.cn-bj.ufileos.com/50416f44-5b7e-43bb-a0c4-ee71be577c04.jpg)]

## Spring 注入 bean 的方式

- 注解注入

## 案例实操

#### 注解方式注入

对于bean的注入,除了使用xml配置以外,注解的配置简化开发的速度,使程序看上去更加简洁。对于注解的解释,spring对于注解有专门的解释器,对定义的注解进行解析,实现对应bean对象的注入,**反射技术实现。**

​ 1.加入spring-aop jar包spring-aop-4.3.2.RELEASE.jar

​ 2.Xml配置:加入context命名空间和xsd地址

​ 3.添加配置

~~~ xml

    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">

   

   

   

~~~

对于bean的注入常用注解类型

@Autowired属性字段或set方法上

@Resource属性字段或set方法上

**区别:@Autowired默认按bean的类型匹配可以修改按名称匹配和@Qualifier配合使用@Resource默认按名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行匹配注入,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。**

推荐使用@Resource注解是属于J2EE的,减少了与spring的耦合。

## 扩展

### IoC集合类型属性注入

#### list集合注入

~~~ xml

   

       

            河南烩面

            南方臊子面

            油泼面

            方便面

       

   

~~~

#### set集合注入

~~~ xml

   

       

            快乐小馒头

            北方大馒头

            天津麻花

            新疆大饼

       

   

~~~

#### map类型属性注入

~~~ xml

   

   

     

        河南

        云台山风景

             

     

        上海

        宝塔

     

     

        北京

        紫禁城

     

         

~~~

~~~ java

for(Map.Entry entry:map.entrySet()){

    System.out.println("key:"+entry.getKey()+":value"+entry.getValue());

}

~~~

#### properties属性注入

~~~ xml

   

       

            长城

            东方明珠

            兵马俑 

       

~~~

~~~ java

public void printProperties(){

    Set> set=properties.entrySet();

    Iterator> iterator=set.iterator;

    while(iterator.hasNext()){

        Map.Entry entry=iterator.next();

        System.out.println(entry.getKey()+"...."+entry.getValue())

    }

}

~~~

    Map.Entry entry=iterator.next();

        System.out.println(entry.getKey()+"...."+entry.getValue())

    }

}

~~~

需要视频配套文档或更多资料+我们程序员小姐姐v:lezijie007(加好友时备注:b站-LT,不备注拒绝添加哟)

你可能感兴趣的:(Spring Bean的注入有简单的方式吗?)