天道酬勤,学无止境

常用注解使用总结系列: @Order 注解

@Order 注解

@Order注解主要用来控制配置类的加载顺序
示例代码:

package com.runlion.tms.admin.constant;

public class AService {

}
package com.runlion.tms.admin.constant;

public class BService {

}
package com.runlion.tms.admin.constant;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;

@Configuration
@Order(2)
public class AConfig {
  @Bean
  public AService AService() {
    System.out.println("AService 加载了");
    return new AService();
  }

}
package com.runlion.tms.admin.constant;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;

@Configuration
@Order(1)
public class BConfig {
  @Bean
  public BService bService() {
    System.out.println("BService 加载了");
    return new BService();
  }
}

测试类:

package com.runlion.tms.admin.constant;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class OrderMain {
  public static void main(String[] args) {
    AnnotationConfigApplicationContext context =
        new AnnotationConfigApplicationContext("com.runlion.tms.admin.constant");
  }
}

输出结果:
BService 加载了
AService 加载了

因为BService 的@Order(1),所以先打印出来

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Java学习笔记目录索引 (持续更新中)
    博主的其他笔记汇总 : 👉 学习数据结构与算法,学习笔记会持续更新: 《恋上数据结构与算法》学习Java虚拟机,学习笔记会持续更新: 《Java虚拟机》学习Java并发编程,学习笔记会持续更新: 《Java并发编程》学习Java设计模式,学习笔记会持续更新: 《Java设计模式》学习网络协议,学习笔记会持续更新: 《网络协议》 Java学习路线目录索引 👍 一、Java基础二、 MySQL数据库三、JDBC四、JavaWeb五、MyBatis & JPA六、Spring七、SpringMVC八、SpringBoot九、SpringCloud十、Redis十一、SpringSecurity、Shiro十二、消息中间件 RabbitMQ十三、ElasticSearch (转载系列)十四、开发工具的使用 附录 : 👉 Github最牛逼的Java知识汇总 : JavaGuide号称最强的Java知识总结 : ThinkWon 一、Java基础 跳转到目录 UML 一 类图关系 (泛化、实现、依赖、关联、聚合、组合)枚举类 — 概述、常用方法、自定义枚举类、Enum创建枚举类抽象类(abstract class)、接口(interface)String类 — 概述、String的性质、内存解析、常用API线程 — 创建方式、常用方法、线程安全问题、通信Java集合 — Collection
  • SpringBoot系列:1.看透Spring注解的发展脉络
    Spring的两个核心思想是IOC和DI,业务通过XML配置类之间的关系,然而这导致XMl不断膨胀 ,越来越难以维护,而注解可以自动维护很多配置关系,因此从Spring2开始不断增加对注解的支持,以致于可以使用@Config+@Bean的方式彻底消除XML文件,之后更进一步实现了自动装配的功能,这直接促成了SpringBoot的诞生,所以要理解SpringBoot,我们必须先梳理一下注解驱动的问题。 1.注解驱动进化史 Spring1支持@Manager //进行中 2 常用驱动功能总结 来源:https://blog.csdn.net/xueyushenzhou/article/details/115507308
  • spring最常用的7种注解整理,让你在工作中事半功倍
    前言随着技术的更新迭代,Java5.0开始支持注解。而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制spring框架。而spring的的注解那么多,可能做java很多年,都用不上。所以我在这里按照类型总结了这7种最常用的注解。希望能够对你有所帮助,不足之处还请斧正。一. 核心注解@Required此注解用于bean的setter方法上。表示此属性是必须的,必须在配置阶段注入,否则会抛出BeanInitializationExcepion。@Autowired此注解用于bean的field、setter方法以及构造方法上,显式地声明依赖。根据type来autowiring。当在field上使用此注解,并且使用属性来传递值时,Spring会自动把值赋给此field。也可以将此注解用于私有属性(不推荐),如下。@Componentpublic class User {复制代码@Autowiredprivate Address address; }复制代码最经常的用法是将此注解用于settter上,这样可以在setter方法中添加自定义代码。如下:@Componentpublic class User { private Address address;复制代码@AutoWiredpublic setAddress(Address
  • spring最常用的7种注解整理,让你在工作中事半功倍
    前言随着技术的更新迭代,Java5.0开始支持注解。而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制spring框架。而spring的的注解那么多,可能做java很多年,都用不上。所以我在这里按照类型总结了这7种最常用的注解。希望能够对你有所帮助,不足之处还请斧正。一. 核心注解@Required此注解用于bean的setter方法上。表示此属性是必须的,必须在配置阶段注入,否则会抛出BeanInitializationExcepion。@Autowired此注解用于bean的field、setter方法以及构造方法上,显式地声明依赖。根据type来autowiring。当在field上使用此注解,并且使用属性来传递值时,Spring会自动把值赋给此field。也可以将此注解用于私有属性(不推荐),如下。@Componentpublic class User {复制代码@Autowiredprivate Address address; }复制代码最经常的用法是将此注解用于settter上,这样可以在setter方法中添加自定义代码。如下:@Componentpublic class User { private Address address;复制代码@AutoWiredpublic setAddress(Address
  • 字节码编程,Byte-buddy篇三《使用委托实现抽象类方法并注入自定义注解信息》
    作者:小傅哥 博客:https://bugstack.cn - 汇总系列专题文章 沉淀、分享、成长,让自己和他人都能有所收获! 一、前言 截至到本章节关于字节码框架 Byte-buddy 的大部分常用 API 的使用已经通过案例介绍比较全面了,接下来介绍关于如何去实现一个抽象类以及创建出相应注解(包括类的注解和方法的注解)的知识点。而注解的这部分内容在一些监控或者拦截处理的场景下还是比较常用的,所以在这章节我们会通过一个例子来创建出含有自定义注解的类和方法。 如果你已经阅读了之前的系列文章,这部分学习的内容并不会有太多的陌生,主要是关于委托(MethodDelegation)方法的使用以及补充自定义注解。 那么,接下来我们就使用委托和注解方式来创建这样的案例进行学习。 二、开发环境 JDK 1.8.0byte-buddy 1.10.9byte-buddy-agent 1.10.9本章涉及源码在:itstack-demo-bytecode-2-03,可以关注公众号:bugstack虫洞栈,回复源码下载获取。你会获得一个下载链接列表,打开后里面的第17个「因为我有好多开源代码」,记得给个Star! 三、案例目标 在这里我们定义了一个抽象并且含有泛型的接口类,如下; public abstract class Repository<T> { public abstract T
  • 一位腾讯大牛写给开发0—3年的JavaWeb的学习路线(建议收藏)
    一.BS结构 B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。 二.JavaSE 基础语法(常用数据类型与包装类,访问与非访问修饰符,跳出循环,类与方法的声明) 基本语法规则(标识符,修饰符,关键字)数据类型与变量修饰符与运算符流程控制数组类与方法泛型常量与枚举文档注释  面向对象(面向对象的编程描述,封装继承多态的联系,抽象类与接口的作用,内部类的实例化) 面向对象概念(模型)命名空间与访问级别面向对象特性(封装,继承,多态,抽象)面向接口编程(解耦和)内部类(匿名,方法,成员,静态)Java面向对象语法规则总结 工具类(字符串与可变字符串,日期类型转换与格式化,自定义异常,输入流与输出流的实现,线程控制,并发与锁) 数据类型操作字符串操作数学运算时间日期处理异常处理文件处理流处理多线程操作 集合框架(数据结构的Java语言描述,集合框架的底层实现原理)
  • 第2周总结
    Spring工程搭建 创建Maven项目在设置中配置maven相关设置 引入依赖spring基础包 刷新自动下载 配置核心文件applicationContext.xml 新建接口类和实现类 实现接口并补充配置文件 常用后端代码结构 Controller层 Service层 DAO层 entity实体类 vo视图类 dao层去数据库查询数据存储于entity中 service从dao中拿数据进行加工存储于vo中 controller从service中拿数据给前端 if判断和三目运算符 if判断格式 if (判别式) { 代码块1 } else { 代码块2 } 判别式为真是执行代码块1为假执行代码块2 三目运算符格式: 判别式 ? 代码块1 : 代码块2; 判别式为真是执行代码块1为假执行代码块2 三目运算符相对于if判断要更简洁简单 不过有些时候if判断还是跟好用 Spring IOC & DI 新建Maven项目并配置好相关设置 新建常用代码结构包和类及接口 缺点:不好测试及扩展; 可以通过ioc解决 导入Spring框架基础包并且添加Spring核心配置文件 将各个模块的手动实例化改为从Spring容器拿取 缺点:不太适合类比较多的项目 可以通过注解实现springIOC 修改核心配置文件将dao、services、controller下的类扫描自动注入容器,并搭配注解使用
  • 菜鸟的springboot常用注解总结
    菜鸟的springboot常用注解总结 说明@SpringBootApplication@Component、@Service、@Controller、@Repository@ResponseBody@RestController@AutoWired、@Qualifier、@Resource@RequestMapping、@GetMapping、@PostMapping@Value、@ConfigurationProperties、@PropertySource@Configuration、@Bean@RequestParam、@RequestBody、@PathVariable、@RequestHeader、@CookieValue 说明 更新时间:2020/8/12 22:14,更新了@RequestParam等注解 更新时间:2020/8/6 18:00,更新了@AutoWired等注解 更新时间:2020/8/2 17:32,更新了@SpringBootApplication等注解 本文主要对网上的springboot常见注解和自己本人在学习的过程中遇到的注解的一次总结,本文会持续更新,不断地扩充 本文仅为记录学习轨迹,如有侵权,联系删除 @SpringBootApplication 包含@Configuration、@EnableAutoConfiguration、
  • Spring Boot面试题(2021最新版)
    前言 在微服务理念席卷程序界的今天,作为最主流语言 Java 的一名 Coder,如何能正确的、系统的、快速的掌握 Spring Boot是至关重要的。接下来,让我们一起走进 Spring Boot的世界,一起感受 Spring Boot 的魅力。我坚信,机会永远属于有准备的人,我们与其羡慕他人的成功,不如从此刻起,积累足够多的知识和面试经验,为将来进入更好的公司做好充分的准备! 想让面试官在短短的几十分钟内认可你的能力?想在最短的时间内收获 Java 技术栈最核心的知识点?想要更全面更深入的了解 Java 技术?这篇文章给你想要的所有答案。 小编分享的这份金三银四Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等26个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!【持续更新中!】 完整版Java面试题地址:2021最新面试题合集集锦。 序号 专题 内容 链接 1 中间件 Java中间件面试题(2021最新版) ​ https://blog.51cto.com
  • Spring核心技术IOC
    Spring核心技术之IOC 本节目的:IOC作为spring一切的核心,了解内部机制很有必要的。本节会对照官方文档目录加上自己理解为主,将IOC的细节,尽可能地挖掘出来,让大家精通IOC的高级应用,全面了解IOC底层原理,并且能够应用到实际项目开发中,其中有理解不到位的地方,请大家提出来,然后加以完善。另外,此篇非常长,但是没有废话的地方,最后希望大家收益多多。一起成长。另外本文全部案例代码全部上传github,https://github.com/lengweijian/spring-framework.git 1.什么是IOC?(重点) 网上很多人说什么IOC是控制反转,什么谁控制谁,谁反转谁,说的很多,但是听起来还是一头雾水。我们先姑且不管,先看一下spring官网的说法, 大意:IOC也被称作DI依赖注入(IoC is also known as dependency injection (DI))。这是一个通过构造函数参数和工厂方法参数为对象添加依赖关系的一个过程。容器在创建这些bean的时候会将这些依赖注入。这些是官方的大意。再看一个图: 这是来自官网的图。先不展开说,先看输入箭头有两个,一个是Business Object,也就是我们的业务对象。另一个是Conf Meta,我们就叫它配置元数据。两个数据端经过spring容器后,可以produces生产出Fully
  • Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新
    文章目录简介Spring Boot的基本操作Spring Boot的构建和部署Spring Boot工具Spring Boot的测试Spring Boot中使用JPASpring Boot和第三方系统的集成总结简介自从Spring横空出世之后,Spring就成了事实上的J2EE标准。Spring作为一个轻量级的J2EE应用框架,就是针对EJB的复杂特性而设计的,最后毫无疑问,Spring凭借它的简洁,可理解性和可用性赢得了最后的胜利。Spring从最初的xml配置到后面的注解配置,一直都在不断的进步,但是可不可以,能不能够有一种方法可以不要配置就能运行Spring应用程序?于是Spring Boot应运而生。更多内容请访问www.flydean.comSpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。Spring Boot让你的企业级应用更加容易编写,更加容易运行。并且集成了很多常用的第三方lib库,免去了大家手动引用配置的麻烦。使用最简单的配置运行最复杂的Spring应用程序,应该就是Spring Boot的终极目标。同时Spring Boot尽可能的摆脱xml配置,能够提供包括独立运行,服务器内部运行等各种运行方式,方便我们的使用。Spring Boot的基本操作最新的Spring Boot版本是2.3.0
  • 血亏!阿里P8轻易把总结了近一年的java高级特性笔记送人了
    写在前面 Java的核心API为Java开发者带来了很大的方便。所谓API就是一些 已经写好、可直接调用的类库。Java 有非常庞大的API,其中有一些类库 是必须掌握的,只有熟练掌握了Java的核心API,才能更好地使用Java。在建立面向对象思想的基础上掌握Java常用类库的使用,对于Java学习者来说是非常重要的。本书主要介绍了Java 集合框架、泛型、Java实用类、FileIO、 反射、注解、多线程、Socket 网络编程、XML解析等知识。 本书深入探究Java高级实用技术,以进一步强化Java开发技能。主要内容包括集合框架与泛型、实用类、Java 1/0和反射机制、注解与多线程、Java 网络编程、XML技术等,最后通过实战项目一一嗖嗖移动业务大厅贯穿全书知识点进行演练。本书通过大量案例来讲解各知识点,并融入实际开发经验总结,语言通俗易懂。最后通过综合练习项目进行巩固提升,提高读者分析和解决问题的能力并积累项目开发经验。 下面就从文档的目录大纲,主要章节,主要内容一一进行详细的介绍: Java高级特性 本书特色 ●选取知识点核心实用,以“互联网+”实现终身学习。 ●以企业需求为设计导向,以任务驱动为讲解方式。 ●以案例为主线组织知识点,以实战项目来提升技术。 ●充分考虑学习者的认知曲线,由浅入深,边讲边练。 01 目录大纲 02 主要内容介绍 第1章:集合框架和泛型。
  • android面试简历!2021中级Android开发面试解答,BAT大厂面试总结
    随着互联网的发展,大众对程序员这个职业有了更多的了解,除了高薪工资之外,压力太大,黑白颠倒,作息不规律等等,也是身为一个程序员必须经历的事情。 大部分程序员都是安静的、稳重的,有什么问题发给他们修改,收到的都是简洁明了的“OK”。 但是,很多时候,只要一句话,就能让这些可爱的程序猿瞬间被激怒 很多人准备面试的时候,大多数就会这样的,打开百度,输入 “Android 面试题”,找几个多的开始看。 这虽然看起来很自然,但是并不是一种 健康的方式,面试题的作用应当是查缺补漏,上学的时候也不是直接发习题册然后对着答案学习吧? 知乎上有个问题,叫做 如何高效学习,里面有一个回答我觉得很符合我自己的观点,就是 建立起自己的知识体系,建立知识体系的目的在于: 巩固记忆。 认识自己,找到自己的优势及不足。 把握复习的进度。 经验总结。 目前我自己的总结的会分为以下几个大点: Java 基础知识 面向对象的基本思想Object类相关:Object类的几个关键函数、String涉及到的常量池概念,序列化 & 反序列化。重要关键字:final、static。内部类:内部类的分类、应用场景、内部类编译成class后是怎么样的。抽象类 & 接口:区别、应用场景。编码:编码的目的、分类。异常:异常体系、自定义异常。注解:注解的基本概念、分类、编译时注解 & 运行时注解。容器:重要容器的内部实现、容器间的对比
  • Spring/Spring Boot 常用注解总结
    一、前言 在查漏补缺的过程发现了这篇文章很贴近项目中的spring用法,故收录为笔记。 二、spring知识 1. @SpringBootApplication 这里先单独拎出@SpringBootApplication 注解说一下,虽然我们一般不会主动去使用它。 Guide 哥:这个注解是 Spring Boot 项目的基石,创建 SpringBoot 项目之后会默认在主类加上。 @SpringBootApplication public class SpringSecurityJwtGuideApplication { public static void main(java.lang.String[] args) { SpringApplication.run(SpringSecurityJwtGuideApplication.class, args); } } 我们可以把 @SpringBootApplication看作是 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解的集合。 package org.springframework.boot.autoconfigure; @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME)
  • 接近8000字的Spring/SpringBoot常用注解总结!安排!
    目录如下,内容有点多: 1. @SpringBootApplication 这里先单独拎出@SpringBootApplication 注解说一下,虽然我们一般不会主动去使用它。 注:这个注解是 Spring Boot 项目的基石,创建 SpringBoot 项目之后会默认在主类加上。 我们可以把 @SpringBootApplication看作是 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解的集合。 根据 SpringBoot 官网,这三个注解的作用分别是: @EnableAutoConfiguration:启用 SpringBoot 的自动配置机制@ComponentScan: 扫描被@Component (@Service,@Controller)注解的 bean,注解默认会扫描该类所在的包下所有的类。@Configuration:允许在 Spring 上下文中注册额外的 bean 或导入其他配置类 2. Spring Bean 相关 2.1. @Autowired 自动导入对象到类中,被注入进的类同样要被 Spring 容器管理比如:Service 类注入到 Controller 类中。 2.2. Component,@Repository,@Service, @Controller 我们一般使用
  • SpringBoot系列(5):SpringBoot对JSON数据的处理
    目录 前言 1. SpringBoot默认的JSON依赖 2. SpringBoot默认对JSON的处理 2.1 实体类 2.2 Controller控制器 2.3 测试返回的JSON数据 2.4 jackson中对null的处理 3. SpringBoot配置阿里巴巴fastjson 3.1 jackson和fastjson对比 3.2 pom.xml文件配置fastjson依赖 3.3 使用fastjson处理null值 4. 封装统一返回的数据结构 4.1 定义统一的 json 结构 4.2 改造Controller控制器 4.3 测试统一返回的JSON数据格式 5. 小结 前言 JSON的可读性比XML强几条长安街,解析规则也简单许多。XML解析的时候规则太多了,动不动就非法字符,动不动就抛异常。这对追求高开发速度和低开发门槛的企业来说是个致命伤。 在一个项目的各接口间、前后端之间数据的传输多使用 JSON格式的数据进行传输交互。而Spring Boot框架项目接口返回 JSON格式的数据比较简单:在 Controller 类中使用@RestController注解即可返回 JSON格式的数据。 @RestController是SpringBoot 新增的一个注解,OK,看下这个注解类: @Target(ElementType.TYPE) @Retention
  • spring和springboot常用注解总结
    1.Spring注解 注解分为两类 1.注册Bean注解,将实例化的对象转化成Bean,放入IOC容器中等待调用 2.使用Bean注解,将在XML文件中配置好的Bean拿来用完成属性方法的组装 自己常用 @Component ,@Repository,@Service,@Controller,@MaperScan,@Autowride,@Configuration,@RequestController,@RequestMapping,@Bean,@SpringApplication,@Enable,@PutMapping,@Request,@RequestScan, 1.1注册Bean注解 @component 1、把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/> 2、下面写这个是引入component的扫描组件 <context:component-scan base-package=”com.mmnc”> 3、和@Bean的区别 @Component被用在要被自动扫描和装配的类上。 @Bean主要被用在方法上,来显式声明要用生成的类。 现在项目上,本工程中的类,一般都使用@Component来生成bean。在把通过web service取得的类,生成Bean时,使用@Bean和getter方法来生成bean。
  • SpringBoot2.0系列文章(六)中SpringBootApplication注解详解
    关注我zhisheng转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/19/SpringBootApplication-annotation/概述许多 Spring Boot 开发者喜欢他们的应用程序使用自动配置、组件扫描、并能够在他们的 “Application” 类上定义额外的配置。 可以使用一个 @SpringBootApplication 注解来启用这些功能。1import org.springframework.boot.SpringApplication;2import org.springframework.boot.autoconfigure.SpringBootApplication;34@SpringBootApplication5public class Application {6 public static void main(String[] args) {7 SpringApplication.run(Application.class, args);8 }9}@SpringBootApplication跟进去 @SpringBootApplication 注解可以发现下图:其中标注的三个注解正能解决我们上面所说的三种功能,它们是:@SpringBootConfiguration
  • 金九银十!5年经验Android程序员面试27天,已拿到offer
    如何提升学习? 提升学习很大程度上就是为了跳槽涨薪,当然运气不好的情况可能是被劝退重新找工作,无论是哪种情况,自主学习的能力是要有的,而且得有一个方向,得有重点。 对于Android移动开发来说,热修复框架、插件化框架、组件化框架、图片加载框架、网络访问框架、RxJava响应式编程框架、IOC依赖注入框架、最近架构组件Jetpack等等Android第三方开源框架是进入大厂必须掌握的,也是面试中常常问到的,我这里整理了一份资料以及路径,长达1042页!相信看完这份文档,你将会对这些Android第三方框架有着更深入、更系统的理解。 很多人准备面试的时候,大多数就会这样的,打开百度,输入 “Android 面试题”,找几个多的开始看。 这虽然看起来很自然,但是并不是一种 健康的方式,面试题的作用应当是查缺补漏,上学的时候也不是直接发习题册然后对着答案学习吧? 知乎上有个问题,叫做 如何高效学习,里面有一个回答我觉得很符合我自己的观点,就是 建立起自己的知识体系,建立知识体系的目的在于: 巩固记忆。 认识自己,找到自己的优势及不足。 把握复习的进度。 经验总结。 目前我自己的总结的会分为以下几个大点: Java 基础知识 面向对象的基本思想Object类相关:Object类的几个关键函数、String涉及到的常量池概念,序列化 & 反序列化。重要关键字:final、static。内部类
  • Spring常用注解(绝对经典)
    一、前言 最近在看B站颜群老师的课程,Javaweb>spring>springMVC>mybatis>spring高级,一路走来,跌跌撞撞,发现spring也不过尔尔,说白了,spring就是想尽办法将new做的更简单,更完美,更可配置。 Spring的一个核心功能是IOC,就是将Bean初始化加载到容器中,Bean是如何加载到容器的,可以使用Spring注解方式或者Spring XML配置方式。 Spring注解方式减少了配置文件内容,更加便于管理,并且使用注解可以大大提高了开发效率! 注解本身是没有功能的,和xml一样,注解和xml都是一种元数据,元数据即解释数据的数据,也就是所谓的配置。 1、xml和注解的最佳实践: xml用来管理bean;注解只负责完成属性的注入; 2、使用注解唯一需要注意的就是,必须开启注解的支持: ​<context:component-scan base-package="com.guo"></context:component-scan> <context:annotation-config/> 二、Spring的常用注解 1、给容器中注入组件 (1)包扫描+组件标注注解 @Component:泛指各种组件 @Controller、@Service、@Repository都可以称为@Component。 @Controller:控制层