学习Spring5必知必会(4)~使用注解配置、使用java代码配置
● 注意:使用注解并不能完全取代xml配置,比如配置连接池DruidDataSource,我们就不能到这个类中去贴注解。
想要实现零配置(完全不使用xml进行配置):javaConfig + 注解
● DI注解:注解配置 <context:congfig-config/>
● IoC注解:组件扫描器 <context:component-scan base-package=""/>
一、通过注解自动装配(比起xml配置的对象类型配置ref,更加推荐使用注解注入)
1、 DI 注解:@Autowired、@Resource、@Value
- value注解的威力: 结合动态properties配置文件引入值变量 @Value("${service.port}")
★ 注入:
常量类型 value Value
对象类型 ref Autowired/Resource
(1)在配置文件中添加注解的解析器的配置:
<!-- DI注解的解析器 -->
<context:annotation-config/>
(2)使用注解@Autowired
□ Autowired 注解寻找 bean 的方式:
1) 首先按照依赖对象的类型找,如果找到,就是用 setter 方法或者字段直接注入;
2)如果在 Spring 上下文中找到多个匹配的类型,再按照名字去找,如果没有匹配报错;
3)可以通过使用 注解@Qualifier("id名字") 来规定依赖对象按照 bean 的 id 和类型的组合方式去找
■ DI注解 Autowired 和 Resource(都需要配置DI注解的解析器):
Spring官方是使用:Autowired
javaEE规范:Resource 【依赖:javax.annotation-api.jar】
2、IoC 注解:
(1)在配置文件中添加注解的解析器的配置:
<!-- IoC注解的解析器 -->
<context:component-scan base-package="com.shan.ioc"/>
(2)使用注解@Component (配置Bean)
- @Component 组件若是不写value属性值,此时的bean的id默认是类型首字母小写
// <bean id="dataSource" class="com.shan.ioc.MyDataSource"/>
@Component("dataSource")
public class MyDataSource {
}
■ bean 组件版型:四个组件的功能是相同的,只是用于标注不同类型的组件。
@Component 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Repository (持久层)用于标注数据访问组件,即 DAO 组件。
@Service (业务层)用于标注业务层组件。
@Controller (控制层)用于标注控制层组件(如 struts 中的 Ation,SpringMVC 的 Controller)
3、作用域注解、初始化和销毁注解: @Scope、@PostConstruct、@PreDestroy
- 其中初始化和销毁注解【依赖:javax.annotation-api.jar】
二、通过java代码装配 java-config
学习Spring5必知必会(4)~使用注解配置、使用java代码配置的更多相关文章
- [ 学习路线 ] 2015 前端(JS)工程师必知必会 (2)
http://segmentfault.com/a/1190000002678515?utm_source=Weibo&utm_medium=shareLink&utm_campaig ...
- 《SQL必知必会》学习笔记二)
<SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...
- 学习《SQL必知必会(第4版)》中文PDF+英文PDF+代码++福达BenForta(作者)
不管是数据分析还是Web程序开发,都会接触到数据库,SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能. 推荐学习<SQL必知必会(第4版)>,内容丰富,文字简洁明快 ...
- 《MySQL必知必会》学习笔记——前言
前言 MySQL已经成为世界上最受欢迎的数据库管理系统之一.无论是用在小型开发项目上,还是用来构建那些声名显赫的网站,MySQL都证明了自己是个稳定.可靠.快速.可信的系统,足以胜任任何数据存储业务的 ...
- 《SQL必知必会》学习笔记整理
简介 本笔记目前已包含 <SQL必知必会>中的所有章节. 我在整理笔记时所考虑的是:在笔记记完后,当我需要查找某个知识点时,不需要到书中去找,只需查看笔记即可找到相关知识点.因此在整理笔记 ...
- 《SQL必知必会》学习笔记(一)
这两天看了<SQL必知必会>第四版这本书,并照着书上做了不少实验,也对以前的概念有得新的认识,也发现以前自己有得地方理解错了.我采用的数据库是SQL Server2012.数据库中有一张比 ...
- mysql学习--mysql必知必会1
例如以下为mysql必知必会第九章開始: 正則表達式用于匹配特殊的字符集合.mysql通过where子句对正則表達式提供初步的支持. keywordregexp用来表示后面跟的东西作为正則表達式 ...
- mysql学习--mysql必知必会
上图为数据库操作分类: 下面的操作參考(mysql必知必会) 创建数据库 运行脚本建表: mysql> create database mytest; Query OK, 1 row ...
- 数据库学习之中的一个: 在 Oracle sql developer上执行SQL必知必会脚本
1 首先在開始菜单中打开sql developer: 2. 创建数据库连接 点击左上角的加号 在弹出的对话框中填写username和password 測试假设成功则点击连接,记得角色要写SYSDBA ...
- SQL必知必会,带你系统学习
你一定听说过大名鼎鼎的Oracle.MySQL.MongoDB等,这些数据库都是基于一个语言标准发展起来的,那就是SQL. SQL可以帮我们在日常工作中处理各种数据,如果你是程序员.产品经理或者是运营 ...
随机推荐
- winform 中心旋转 图片旋转
//设置左上角到中心点 g.TranslateTransform(int.Parse(x), int.Parse(y)); //旋转角度 g.RotateTransform(int.Parse(&qu ...
- spring 事务传播性
一.什么是事务传播性 大白话讲就是,方法之间互相调用的时候,事务如何传播,比如A()调用B(),B()的事务是和A()共用一个事务(失败一起提交)? 还是新事务(两者事务互不影响)?,还是说B()不需 ...
- luis使用手册
Luis聊天机器人的使用 首先打开luis官网 图5.1 luis官网界面 图5.2 app应用管理界面 界面显示现有应用,显示它们的名称,语言,日期,以及使用次数.点击创建一个新的app应用. ...
- HttpServletResponse接口详解
在 Servlet API 中,定义了一个 HttpServletResponse 接口,它继承自 ServletResponse 接口.HttpServletResponse 对象专门用来封装 HT ...
- MyCms 自媒体 CMS 系统 v2.8,支持织梦数据导入
MyCms 是一款基于Laravel开发的开源免费的自媒体博客CMS系统,助力开发者知识技能变现. MyCms 基于Apache2.0开源协议发布,免费且不限制商业使用,欢迎持续关注我们. V2.8 ...
- http中的8种请求介绍
HTTP协议的8种请求类型介绍 HTTP协议中共定义了八种方法或者叫"动作"来表明对Request-URI指定的资源的不同操作方式,具体介绍如下: OPTIONS:返回服务器针对特 ...
- list概述
1.list概述 list 是一种双向链表.list 的设计更加复杂一点,好处是每次插入或删除一个元素,就配置或释放一个元素,list 对于空间的运用有绝对的精准,一点也不浪费.而且对于任何位置的元素 ...
- Programiz 中文系列教程·翻译完成
原文:Programiz 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 学习资源 目录 Programiz C ...
- Git分支基本操作
感谢廖雪峰老师,以下教程均来自廖雪峰老师的博客,地址:https://www.liaoxuefeng.com/wiki/896043488029600/900003767775424 基本原理 在版本 ...
- JAVA boolean 类型
boolean 类型用来存储布尔值,在java中布尔值只有2个,true和false. boolean flag=true; flag=false;