博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring注解基础笔记
阅读量:5750 次
发布时间:2019-06-18

本文共 1570 字,大约阅读时间需要 5 分钟。

@新手学习

1. IOC的注解方式

1.1 这个只是最基础的Spring-IOC了,当然最开始要导入IOC的包啦,po图:

要记得把AOP的包也导入进来。

1.2 当然也少不了在applicationContext.xml里面配置

1.2.1 开启springIOC的注解功能

1.2.1.1 首先把命名空间引入,po图:

1.2.1.2 在中的配置,po图:

  • context:component-scan:一般在创建spring项目的时候在xml配置中都会配置这个节点,这个节点会自动扫描base-package路径或者该路径下的子包下面的java文件,如果扫描文件中带有@Service.@Component.@Repository.@Controller等这些注解的类,就会把这个类注册bean。PS:如果配置了context:component-scan就不用在配置context:annotation-config了,因为前者包含了后者。

1.2.2 IOC相关的注解

  1. @Component:当组件不好归类的时候创建对象(一般使用在普通的spring项目)。当注解在一个类上的时候,IOC容器会去自动扫描并把这个类注册成bean保存在容器中。默认的会将类的唯一标识定义成类名小写。
  2. @Repository:和@Component作用一样,创建对象(在分层项目中,用于标注数据访问DAO组件)。
  3. @Service:和@Component作用一样,创建对象(在分层项目中,用于标注业务层组件)
  4. @Controller:和@Component作用一样,创建对象(在分层项目中,用于标注控制层组件如:(struts中的action))
  5. @Scope:用于注释组件是否是单例或多例,属性:prototype多例,singleton单例
  6. @PostConstruct:初始化对象方法
    @PreDestory:销毁对象方法,需要手动的开启这个方法,po图:

2.依赖注入

2.1 @Value

  • 这种注入方式比较制杖QuQ,一般不会把值写死。当然这样也是可以把值注入进去的。
  • 一般都会加载一个properties文件,用EL表达式取出数据,po图:

2.2 @Autowired

  • 自动根据类型注入,po图:
    PS:Spring会根据注解知道,这个引用是某个接口的,然后再加载到接口的实现类,然后根据实现类的注解将bean装进容器中,注入到引用变量中。
    注意:@Autowired如果接口有多个实现类,将无法被注入。所以可以配合接下来这个注解。

2.3 @Qualifer

  • 指定注入的对象名称,po图:
  • @Qualifer 会根据指定的bean的id来注入指定的对象。
    当@Autowired出现多个相同类型的对象的时候(相当于一个接口出现了多个实现类),可以使用@Qualifer指定需要注入的对象.

2.4 @Resource

  • 既可以根据类型自动注入,也可以根据指定的对象名称注入,po图:

2.5 @Autowired和@Resource的区别

  1. 注入的方式不同
    @Autowired只能根据类型注入对象,需要配合@Qualifer 指定某个对象的注入。
    @Resource 既可以根据类型自动注入,也可以根据指定的对象名称注入。
  2. 所属的标准不同
    @Autowired来自于spring框架,po图:
    @Resource 来自与JavaEE的标准(推荐使用这个注解),po图:
  3. 结论:@Resource 比 @Autowired更加标准。推荐使用@Resource注解来注入对象。

参考笔记:@神码学堂
新手上路,有错误的地方欢迎怼死我!!

转载于:https://juejin.im/post/5a76a9a76fb9a063451491c1

你可能感兴趣的文章
WCF客户端与服务端通信简单入门教程
查看>>
判断是否含有中文
查看>>
MyEclipse Web开发教程:XML & XML架构(一)
查看>>
linux文件权限与属性的更改
查看>>
Jquery绑定事件
查看>>
android 资源种类及使用
查看>>
Explorer程序出错
查看>>
java之抽象工厂
查看>>
log4j2性能剖析
查看>>
修改系统时间 ubuntu
查看>>
Centos7同时运行多个Tomcat
查看>>
使用CocoaPods过程中的几个问题
查看>>
我的友情链接
查看>>
mysql数据类型---数值型---int
查看>>
为eclipse安装maven插件
查看>>
Android自动化压力测试——Monkey工具
查看>>
公司新年第一次全员大会小记
查看>>
最懒的程序员
查看>>
了解Amdahl定理,该定理再多核时代有怎样的影响?
查看>>
JAVA8 Stream 浅析
查看>>