运行这个类,可以在控制台中看到如下效果:
小技巧:注解配合反射使用
1)只有定义为.时,我们才能通过注解反射获取到注解 。
2)通过反射获取cla及field对象,然后通过cla.(.class)和field.(.class) 方法可以获取到注解值
3)然后根据注解的值,去实现一些业务逻辑
2.1.3 关于注解的总结
用处:
生成文档 。这是最常见的,也是java 最早提供的注解 。常用的有@param @ 等(我们注释里面用到的)跟踪代码依赖性,实现替代配置文件功能 。(注解的大量使用,可以简化配置文件)在编译时进行格式检查 。如@ 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出
优点 :
保存在 class 文件中,降低维护成本 。无需工具支持,无需解析 。编译期即可验证正确性,查错变得容易 。提升开发效率 。
缺点:
若要对配置项进行修改,不得不修改 Java 文件,重新编译打包应用 。配置项编码在 Java 文件中,可扩展性差 。
通过这个章节,大家是否对注解有了一定的了解呢?概括一点来说就是不同的注解,作用不同 。在框架下,增加了一些特性注解,用于方便开发、部署,后续我们会讲解一些的核心注解 。
2.2核心注解 2.2.1 @n
的核心注解,主要目的是开启自动配置 。它也是一个组合注解,主要组合了@,@ion(核心)和@ 。可以通过@n(={想要关闭的自动配置的类名.class})来关闭特定的自动配置,其中@让 Boot扫描到类并把它加入到程序上下文 。
小技巧:是否开启web功能
如果Maven中没有添加web的依赖
2.2.2 @ion:自动配置
此注释自动载入应用程序所需的所有Bean——这依赖于 Boot在类路径中的查找 。该注解组合了@注解,@注解导入了类,它使用r.方法来扫描具有META-INF/.文件的jar包 。而.里声明了有哪些自动配置.
2.2.3 @:配置文件
@底层是含有@,所以@ 具有和 @ 的作用 。
@可理解为用的时候xml里面的标签 。
@注解可以达到在中使用xml配置文件的作用 。
@Bean可理解为用的时候xml里面的标签
总结起来就是有三个重要用法:
通过配置文件注入类使用@+@Bean方式注册Bean使用@启动容器+@+@注册Bean
后面讲解自定义配置时会详细讲解 。
2.2.4 @:自动扫描
表示将该类自动发现扫描组件 。个人理解相当于,如果扫描到有@、@、@等这些注解的类,并注册为Bean,可以自动收集所有的组件,包括@类 。
2.2.5 @Bean:
在 中,@Bean注解的用法常常结合@来使用,下面用一个实例来讲解一下:
package com.dsx.demo;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Scope;@Configurationpublic class TestConfiguration {public TestConfiguration() {System.out.println("TestConfiguration容器启动初始化 。。。");}// @Bean注解注册bean,同时可以指定初始化和销毁方法@Bean@Scope("prototype")public TestBean testBean() {return new TestBean();}}
上述操作相当于实例化,并交给管理 。
注:
(1)、@Bean注解在返回实例的方法上,如果未通过@Bean指定bean的名称,则默认与标注的方法名相同;
(2)、@Bean注解默认作用域为单例作用域,可通过@Scope(“”)设置为原型作用域;
(3)、既然@Bean的作用是注册bean对象,那么完全可以使用@、@、@、@等注解注册bean(在需要注册的类上加注解),当然需要配置@注解进行自动扫描 。
在的开发过程中,我们基本上都是采取第三种方法进行Bean的注册的 。
- 关于vb6无边框的窗体开发遇到的部分问题的解决方案
- 号称能让开发者告别996,低代码火了,真神器还是伪风口
- zuul 史上最简单的SpringCloud教程 | 第五篇: 路由网关(Fi
- Spring security oauth2最简单入门环境搭建
- 转帖:从0到1亿 植物大战僵尸开发者的自述
- 【CSDN博客之星】专访陈勇: 敏捷开发现状及发展之路
- 官宣!2023华为开发者大赛来了,激励奖金高达500万元
- 【项目实战】03-项目开发介绍
- 【base64码转为图片,并预览】
- 持续更新 Google Play 开发应用问题一览