● 注意:使用注解并不能完全取代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代码配置的更多相关文章

  1. [ 学习路线 ] 2015 前端(JS)工程师必知必会 (2)

    http://segmentfault.com/a/1190000002678515?utm_source=Weibo&utm_medium=shareLink&utm_campaig ...

  2. 《SQL必知必会》学习笔记二)

    <SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...

  3. 学习《SQL必知必会(第4版)》中文PDF+英文PDF+代码++福达BenForta(作者)

    不管是数据分析还是Web程序开发,都会接触到数据库,SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能. 推荐学习<SQL必知必会(第4版)>,内容丰富,文字简洁明快 ...

  4. 《MySQL必知必会》学习笔记——前言

    前言 MySQL已经成为世界上最受欢迎的数据库管理系统之一.无论是用在小型开发项目上,还是用来构建那些声名显赫的网站,MySQL都证明了自己是个稳定.可靠.快速.可信的系统,足以胜任任何数据存储业务的 ...

  5. 《SQL必知必会》学习笔记整理

    简介 本笔记目前已包含 <SQL必知必会>中的所有章节. 我在整理笔记时所考虑的是:在笔记记完后,当我需要查找某个知识点时,不需要到书中去找,只需查看笔记即可找到相关知识点.因此在整理笔记 ...

  6. 《SQL必知必会》学习笔记(一)

    这两天看了<SQL必知必会>第四版这本书,并照着书上做了不少实验,也对以前的概念有得新的认识,也发现以前自己有得地方理解错了.我采用的数据库是SQL Server2012.数据库中有一张比 ...

  7. mysql学习--mysql必知必会1

     例如以下为mysql必知必会第九章開始: 正則表達式用于匹配特殊的字符集合.mysql通过where子句对正則表達式提供初步的支持. keywordregexp用来表示后面跟的东西作为正則表達式 ...

  8. mysql学习--mysql必知必会

      上图为数据库操作分类:     下面的操作參考(mysql必知必会) 创建数据库 运行脚本建表: mysql> create database mytest; Query OK, 1 row ...

  9. 数据库学习之中的一个: 在 Oracle sql developer上执行SQL必知必会脚本

    1 首先在開始菜单中打开sql developer: 2. 创建数据库连接 点击左上角的加号 在弹出的对话框中填写username和password 測试假设成功则点击连接,记得角色要写SYSDBA ...

  10. SQL必知必会,带你系统学习

    你一定听说过大名鼎鼎的Oracle.MySQL.MongoDB等,这些数据库都是基于一个语言标准发展起来的,那就是SQL. SQL可以帮我们在日常工作中处理各种数据,如果你是程序员.产品经理或者是运营 ...

随机推荐

  1. Javascript对象数据类型(键值对)的创建和使用方法

    对象数据类型(键值对) 1.创建键值对 var arry={name:"小明",age:20,isgey:falet} // var 键值对名 = {键:值,键:值} 2.增加键值 ...

  2. Java打印空心三角

    Java打印空心三角 public static void main(String[] args) { int n=5; //n表示输出空心三角形行数,这里以5行为例 for(int i=1;i< ...

  3. CentOS 7安装Odoo 15社区版的详细操作指南

    我之前的文章介绍过在Windows环境下安装Odoo 15,如果您需要在Windows部署,具体可参考我文末的微信号<10分钟教你本机电脑安装Odoo 15,并启用一个内置的项目APP应用> ...

  4. 推荐一个github国内访问加速神器GitHub520

    一.介绍 对 GitHub 说"爱"太难了:访问慢.图片加载不出来. 注: 本项目还处于测试阶段,仅在本机测试通过,如有问题欢迎提 issues 本项目无需安装任何程序,通过修改本 ...

  5. For Update 加锁分析

    MySQL InnoDB 锁 - For Update 加锁分析: 1. InnoDB锁 简单介绍 2. 当前读加锁分析:REPEATABLE-READ 可重复读.READ-COMMITTED 读已提 ...

  6. linux虚拟机快照

    目录 一:虚拟机快照 一:虚拟机快照 1.什么是快照? 快照可保存虚拟机在特定时刻的状态和数据. 状态包括虚拟机的电源状态(列如,打开电源,关闭电源,挂起). 数据包括组成虚拟机的所有文件,这包括磁盘 ...

  7. WebSphere--WAS概念和原理解析

    WebSphere--WAS概念和原理解析--tigergao收录于2021/04/25

  8. python使用制表符或者换行符来添加空白--3

    #!/usr/bin/python #coding=utf-8 message="python" print(message) print("\tpython" ...

  9. Objects、Arrays、Collectors、System工具类

    Objects类 定义 位于java.util包中,JDK1.7以后操作对象的类,对对象的空,对象是否相等进行判断. 常用方法 1.public static boolean equals(Objec ...

  10. JavaIO 思维导图

    网络搜集,万分感谢!