spring-注解开发

一.注解实现自动装配

jdk 1.5开始支持注解,spring 2.5 开始支持注解!

要使用注解须知:

1.导入约束

xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context  
http://www.springframework.org/schema/context/spring-context.xsd

 

2.配置注解的支持

<context:annotation-config/>

 

完整的spring的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"

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

    <context:annotation-config/>

</beans>

 

 

第一个spring注解:@Autowired

直接在属性上使用的即可!也可以在set方法上使用!

 

 

 

使用Autowried  我们可以不用编写set方法,前提是你这个自动装配的属性的IOC(spring)容器中存在,且符合名字byName

科普:

@Nullable  字段标记了的这个注解,说明这个字段可以为null

 

    //如果显示的定义了Autowired的required的属性为 false,说明这个对象可以为null,否则不允许为空(切记:是值为空,不是bean中没有配置)
    @Autowired(required = false)
    private Cat cat;

 

第二个spring注解:@Qualifier(value = " ")

指定唯一一个bean对象注入

 

 

 

    @Autowired
    @Qualifier(value = "dog1")
    private Dog dog;

 

第三个注解,它隶属于Java:@Resource

它更像是 spring 中的 @Autowired 和 @Qualifier 的结合体,使用方便,但是性能不如后者

    @Resource(name = "dog1")
    private Dog dog;

 

总结:@Resource 和 @Autowried 的区别

  • 都是用来自动装配的,都可以放在属性字段上
  • @Autowired  通过byName 的方式实现,而且必须要求这个对象名字存在且唯一
  • @Rescource  默认通过byName的方式实现,如果找不到名字,则通过byType实现,两个都找不到,则报错

 二.使用注解开发

在spring4之后,要使用注解开发,必须要保证aop的包导入了

 

 

使用注解需要导入context约束,增加注解的支持!

@Componet:组件,放在类上,说明这个类被spring 管理了,就是bean

1.bean

 Component 组件
此注解等价于 <bean id="user" class="top.lostyou.dao.User"/>

2.属性如何注入

@Value("ceshi")

等价于
<property name="name" value="csshi"/>

3.衍生的注解

@Componet  有几个衍生注解,我们在web开发的时候,会按照mvc三层架构分层

  • dao         【@Repository】
  • service    【@Service】
  • controller 【@Controller】

这四个注解本质是一样的,都是代表将某个类注册到spring容器中,装配bean。

4.作用域

@Scope("singleton")
标识此类为单例模式

5.总结

xml与注解:

  • xml更加万能,适用于任何场合!维护简单方便
  • 注解  不是自己类使用不了,维护相对复杂

xml与注解的最佳实现:

  • xml用来管理bean
  • 注解用来完成属性的注入
  • 我们在使用过程中只要注意一个问题:必须要让注解生效,就需要开启注解支持
    <!-- 自动扫描文件下的包,只有被扫描的包才会生效 -->
    <context:component-scan base-package="top.lostyou"/>

    <context:annotation-config/>

 

posted @ 2023-02-14 21:45  回忆也交给时间  阅读(25)  评论(0编辑  收藏  举报