springboot注解详解(三)容器配置注解与Spring Boot注解

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

3、@ConditionalOnClass与@ConditionalOnMissingClass

4、@ConditionalOnBean与@ConditionalOnMissingBean

5、@ConditionalOnProperty

6、@ConditionalOnResource

7、@ConditionalOnWebApplication与@ConditionalOnNotWebApplication

8、@ConditionalExpression

9、@Conditional

总结


前言必读:

=====

v搜索公众号:zhulin1028。后台回复:

【java经典源码】【java手册】【java全栈】【java全栈】【快速开发框架】

【springboot点餐】【P8】【软件资料】【Python1】【Python2】【Python3】

【Python全栈】【爬虫】等等,也有最新考研资料哦

免费获取对应资料。

一、容器配置注解

========

1、@Autowired


@Autowired注解用于标记Spring将要解析和注入的依赖项。此注解可以作用在构造函数、字段和setter方法上。

2、@Primary


当系统中需要配置多个具有相同类型的bean时,@Primary可以定义这些Bean的优先级。

3、@PostConstruct与@PreDestroy


值得注意的是,这两个注解不属于Spring,它们是源于JSR-250中的两个注解,位于common-annotations.jar中。@PostConstruct注解用于标注在Bean被Spring初始化之前需要执行的方法。@PreDestroy注解用于标注Bean被销毁前需要执行的方法。

4、@Qualifier


当系统中存在同一类型的多个Bean时,@Autowired在进行依赖注入的时候就不知道该选择哪一个实现类进行注入。此时,我们可以使用@Qualifier注解来微调,帮助@Autowired选择正确的依赖项。下面是一个关于此注解的代码示例:

二、Spring Boot注解

===============

1、@SpringBootApplication


@SpringBootApplication注解是一个快捷的配置注解,在被它标注的类中,可以定义一个或多个Bean,并自动触发自动配置Bean和自动扫描组件。此注解相当于@Configuration、@EnableAutoConfiguration和@ComponentScan的组合。在Spring Boot应用程序的主类中,就使用了此注解。示例代码如下:

@SpringBootApplication

public class Application{

public static void main(String [] args){

SpringApplication.run(Application.class,args);

}

}

2、@EnableAutoConfiguration


@EnableAutoConfiguration注解用于通知Spring,根据当前类路径下引入的依赖包,自动配置与这些依赖包相关的配置项。

3、@ConditionalOnClass与@ConditionalOnMissingClass


这两个注解属于类条件注解,它们根据是否存在某个类作为判断依据来决定是否要执行某些配置。下面是一个简单的示例代码:

@Configuration

@ConditionalOnClass(DataSource.class)

class MySQLAutoConfiguration {

//…

}

4、@ConditionalOnBean与@ConditionalOnMissingBean


这两个注解属于对象条件注解,根据是否存在某个对象作为依据来决定是否要执行某些配置方法。示例代码如下:

@Bean

@ConditionalOnBean(name=“dataSource”)

LocalContainerEntityManagerFactoryBean entityManagerFactory(){

//…

}

@Bean

@ConditionalOnMissingBean

public MyBean myBean(){

//…

}

5、@ConditionalOnProperty


@ConditionalOnProperty注解会根据Spring配置文件中的配置项是否满足配置要求,从而决定是否要执行被其标注的方法。示例代码如下:

@Bean

@ConditionalOnProperty(name=“alipay”,havingValue=“on”)

Alipay alipay(){

return new Alipay();

}

6、@ConditionalOnResource


此注解用于检测当某个配置文件存在使,则触发被其标注的方法,下面是使用此注解的代码示例:

@ConditionalOnResource(resources = “classpath:website.properties”)

Properties addWebsiteProperties(){

最后

ActiveMQ消息中间件面试专题

  • 什么是ActiveMQ?
  • ActiveMQ服务器宕机怎么办?
  • 丢消息怎么办?
  • 持久化消息非常慢怎么办?
  • 消息的不均匀消费怎么办?
  • 死信队列怎么办?
  • ActiveMQ中的消息重发时间间隔和重发次数吗?

ActiveMQ消息中间件面试专题解析拓展:

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


redis面试专题及答案

  • 支持一致性哈希的客户端有哪些?
  • Redis与其他key-value存储有什么不同?
  • Redis的内存占用情况怎么样?
  • 都有哪些办法可以降低Redis的内存使用情况呢?
  • 查看Redis使用情况及状态信息用什么命令?
  • Redis的内存用完了会发生什么?
  • Redis是单线程的,如何提高多核CPU的利用率?

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


Spring面试专题及答案

  • 谈谈你对 Spring 的理解
  • Spring 有哪些优点?
  • Spring 中的设计模式
  • 怎样开启注解装配以及常用注解
  • 简单介绍下 Spring bean 的生命周期

Spring面试答案解析拓展

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


高并发多线程面试专题

  • 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?
  • Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。
  • Java 中 wait 和 sleep 方法有什么区别?
  • 如何在 Java 中实现一个阻塞队列?
  • 如何在 Java 中编写代码解决生产者消费者问题?
  • 写一段死锁代码。你在 Java 中如何解决死锁?

高并发多线程面试解析与拓展

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


jvm面试专题与解析

  • JVM 由哪些部分组成?
  • JVM 内存划分?
  • Java 的内存模型?
  • 引用的分类?
  • GC什么时候开始?

JVM面试专题解析与拓展!

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
产者消费者问题?

  • 写一段死锁代码。你在 Java 中如何解决死锁?

高并发多线程面试解析与拓展

[外链图片转存中…(img-DuA5kgcA-1714758584738)]


jvm面试专题与解析

  • JVM 由哪些部分组成?
  • JVM 内存划分?
  • Java 的内存模型?
  • 引用的分类?
  • GC什么时候开始?

JVM面试专题解析与拓展!

[外链图片转存中…(img-9iU6KVsJ-1714758584738)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

  • 26
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 是一个开源的 Java 框架,它简化了 Spring 应用程序的开发过程。在 Spring Boot 中,注解是一种重要的方式,用于配置和管理应用程序的各个组件。下面是一些常用的 Spring Boot 注解详解: 1. @SpringBootApplication: 该注解用于标记主类,表示这是一个 Spring Boot 应用程序的入口点。它包含了 @Configuration、@EnableAutoConfiguration 和 @ComponentScan 注解。 2. @Controller: 该注解用于定义一个 MVC 控制器类,处理来自客户端的请求,并返回响应。 3. @RestController: 该注解是 @Controller 和 @ResponseBody 的组合,用于定义 RESTful 风格的控制器类。 4. @RequestMapping: 该注解用于映射 HTTP 请求到控制器的处理方法上。可以用于类级别和方法级别。 5. @Autowired: 该注解用于自动装配 Spring 容器中的 Bean 对象。可以用于构造器、属性、方法和参数上。 6. @Component: 该注解用于标记一个类为 Spring 管理的组件。它是一个泛化的概念,包括了 @Repository、@Service 和 @Controller 注解。 7. @Configuration: 该注解用于标记一个类为配置类,类似于传统的 XML 配置文件。可以使用 @Bean 注解配置类中定义 Bean 对象。 8. @EnableAutoConfiguration: 该注解用于启用自动配置机制,Spring Boot 会根据项目的依赖自动配置相应的 Bean 对象。 9. @EnableWebMvc: 该注解用于启用 Spring MVC 配置,如果需要自定义 Spring MVC 的配置,可以使用该注解。 10. @Value: 该注解用于注入配置文件中的属性值到对应的字段或方法参数上。 这些是常用的 Spring Boot 注解详解,通过使用这些注解,可以简化开发过程,提高开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值