Springboot注解
创始人
2024-04-08 22:28:18

Springboot注解

@SpringBootApplication

这个注解是Spring Boot最核心的注解,用在 Spring Boot的主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。

实际上这个注解是@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解的组合。

@Configuration

        代表是一个配置类

@ComponentScan

        指定包扫描

@EnableAutoConfiguration

        该注解是由下面两个组合

        @AutoConfigurationPackage

                自动配置包,利用Registrar.class给容器中导入一系列组件(获取当前类所在的包,然后加载包里面所有的组件)

        @Import(AutoConfigurationImportSelector.class)

                加载127个自动配置类(这些配置类会按需配置,只有满足条件才生效)

@Controller

@Controller表示在tomcat启动的时候,把这个类作为一个控制器加载到Spring的Bean工厂,并且对其实例化(new)。如果不加,就是一个普通的类,和Spring没有半毛钱关系。

@RestController(结合GetMapper,PostMapper,PutMapper....使用)

RestController = Controller + ResponseBody

Controller 返回的是页面

RestController 返回的是输出结果,如json,是提供前端获取数据,提交数据

@RequestMapping

RequestMapping就是一个映射路径。

(如果在同一个Controller里面设置两个相同的RequestMapping,编译可以通过但是tomcat启动后会报错,系统无法进行映射)

根据它们处理的request的不同内容可以分为四类(常用的类型)。
第一类:处理request body部分的注解有:@RequestParam和@RequestBody
第二类:处理requet uri部分的注解有:@PathVaribale
第三类:处理request header部分的注解有:@RequestHeader和@CookieValue
第四类:处理attribute类型的注解有:@SessionAttributes和@MoelAttribute

@ResponseBody的作用

在Controller里面,@ResponseBody就是说明这个方法返回的东西会通过IO流的方式写入到浏览器

@Service,@Component

bean注册

@Autowired,@Resource ,@Autowired+@Qualifier

获取bean

@Resource = @Autowired+@Qualifier

如果接口实现只有一个,直接用,不需要指定名字

如果有多个,建议用@Resource(name = "”) 并指定name(推荐)

也可以用@Autowired+@Qualifier("value") 并指定value值

@Values

从配置文件中取参数

@Configuration + @Bean   -->SpringBoot启动会自动注册组件,默认单实例

给类标准@configuration 标注这是一个配置类 (相当于配置文件)

给方法名@Bean  将该方法标注为组件,id为方法名,返回值就是容器中的实例

 

(@configuration(proxyBeanMethods = ture)默认  代理对象,使组件单实例

当多次调用配置类中的组件(bean),获取的组件都是相等的

 

Full(当参数为true)   每次调用返回容器中的组件,启动时会去检测容器是否存在组件 (全模式)

Lite(当参数为false)  每次调用都会返回新的组件, 启动时不会去检测容器中是否存在组件(轻量级模式)

@ConfigurationProperties

在实体类中标注 @ConfigurationProperties(prefix="mycat ")

 使配置文件和属性一一绑定

配置文件

mycat.brand = 比亚迪

mycat.price = 100000

实体类

private String brand;

private String price;

 

不过还 需要加@component,把类设置为容器中的组件

因为只有是容器中的组件才能使用该springBoot注解

 

 

@Import

给类标注@Import(User.class);

容器自动创建该类型组件,默认名称是全类名(com.**.user)

@ImportResource

在任意一个类上标注  @ImportResource("xxxx.xml")   导入Spring配置文件

@Conditional 

@conditionalOnBean                  但存在某个Bean时干什么

@conditionalOnMissingBean      但不存在某个Bean时干什么

 ....

@ConditionalOnBean(name="  "  或  type="  "  或  value="   ")  可以写类名或类型


 

相关内容

热门资讯

兰格涂镀板卷日盘点:涂镀价格主... 兰格涂镀板卷日盘点:涂镀价格主稳运行,节前市场横盘整理 ...
中国宝安(000009.SZ)... 格隆汇2月9日丨中国宝安(000009.SZ)公布,根据宁波杉杉股份(维权)有限公司于2026年2月...
财报前瞻 | 华尔街共荐“强烈... 思科(CSCO.US)将于周三美股盘后公布2026财年第二季度业绩。华尔街分析师预测,每股收益为1....
中闽能源:拟8.64亿元收购福... 转自:财联社【中闽能源:拟8.64亿元收购福建永泰闽投抽水蓄能公司51%股权】财联社2月9日电,中闽...
拟任新职?市管领导干部任前公示... 每经记者|陈晨    每经编辑|叶峰     2月7日,南京党建网站发布的一则市管...