八.使用注解开发

 

 

<?xml version="1.0" encoding="UTF-8"?>
 <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
         https://www.springframework.org/schema/beans/spring-beans.xsd
         http://www.springframework.org/schema/context
         https://www.springframework.org/schema/context/spring-context.xsd">
     <context:annotation-config/>
 </beans>

 

 1.扫描bean

这个包下的加上注解的类都会加入spring容器中嗷。

 <context:component-scan base-package="com.why"/> 使用逗号隔开,我们可以扫描多个包

2.@component

@component(value="你想给这个类起的别名")不指定这个名字,就默认为类的名字并且是开头字母小写的

将类加入到spring容器

@component有几个衍生的注解 为了和我们web开发中的mvc架构符和一致!!!

  • dao @Repository 都表示注册到xml文件下 只不过dao用它

  • service @Service 同上

  • controller @Controller 同上

3.@value()

这个注解是为当前属性赋值,一般都是 放到set方法上

private List<String> name;
@Value("whysss,whywa")
public void setName(List<String> name) {
this.name = name;
}

4.@Autowired

(required = false):说明如果没有找到对应的bean 可以不报错并输出null

直接在属性上用就行 容器中加入的bean 才能@autoWired 没加入的 如String 没有导入容器 那就会报错!!!

这个注解使用的是先byType再byName的方式来进行的自动导入属性的

@Nullable  这加在字段前面 此时就算这个字段为空 也不会报错

 //定义当前这个属性是否可以为null  false 是允许 true 是不允许
    @Autowired(required = false)
    private Dog dog;
    @Autowired(required = false)
    private Cat cat;

 

 

5. @Qualifier

如果我们xml中配置多个相同类型的bean,但是名字不同此时就可以根据名字为这个属性指定容器中的bean

 

 @Autowired
     @Qualifier(value = "cat1")
    private Cat cat;
    <bean name="cat" class="com.why.Cat"/>
    <bean name="cat1" class="com.why.Cat"/>
    <bean name="cat2" class="com.why.Cat"/>

 

6.@Scope 

加到类上面,声明其("是否为单例 还是原型模式")

 

7.@Resource的装配顺序:

(1)、@Resource后面没有任何内容,默认通过name属性去匹配bean,找不到再按type去匹配
(2)、指定了name或者type则根据指定的类型去匹配bean
(3)、指定了name和type则根据指定的name和type去匹配bean,任何一个不匹配都将报错

然后,区分一下@Autowired和@Resource两个注解的区别:
(1)、@Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配
(2)、@Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了

文字来自:https://www.cnblogs.com/xiaoxi/p/5935009.html

 

 

 

小结:

 

posted @ 2020-08-31 15:21  why666  阅读(131)  评论(0编辑  收藏  举报