《Spring Boot官方文档》16. 自动配置

简介:
16. 自动配置

Spring Boot的自动配置会尝试根据你添加进来的jar依赖来自动配置你的Spring应用。例如,如果HSQLDB在你的classpath路径上,你没有手动配置任何数据库连接实体类,我们还会自动配置内存数据库。

你可以有选择的实现自动配置,可以向 @Configuration上添加@EnableAutoConfiguration或者@SpringBootApplication注解来实现。

你应该只添加一个@EnableAutoConfiguration注解。我们通常建议你把它添加到你的主要 @Configuration类上。

16.1 逐步覆盖自动配置

自动配置是非入侵式的,任何时候你都可以使用你自定义的配置来覆盖自动配置的特定部分。例如,如果你要添加自己的DataSource bean,默认的内嵌数据库会无效。

如果你需要查找当前应用的自动配置,你可以启动应用时加上–debug开关。它会为核心日志记录器开启debug日志记录,并且会打印自动配置日志信息到控制台。

16.2禁用特定自动配置

如果你发现正在应用的特定自动配置不是你想要的,你可以使用@EnableAutoConfiguration的排除属性来禁用它们。

import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) public class MyConfiguration {
}

如果这个类不在classpath路径下,你可以使用该注解的excludeName属性以及指定全限定名 来替代。最终,你也可以控制自动配置类的列表来额除spring.autoconfigure.exclude属性。

你可以通过注解级别以及使用属性来定义排除项。

17. Spring Beans和依赖注入

你可以自由使用任何标准Spring框架技术来定义你的beas以及它们的依赖。简单来说,我们通常使用@ComponentScan 来发现你的beans,并且配合@Autowired构造器来更好的注入。

如果你在构造代码时使用上面建议的方式(在根包下定位你的应用类),你可以用@ComponentScan注解,无需任何参数。你所有的应用组件(@Component, @Service, @Repository, @Controller 等等)都会作为Spring Beans来注册。

下面的例子是使用@Service Bean构造器注入用于获取必要的RiskAssessor Bean。

package com.example.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service public class DatabaseAccountService implements AccountService {

private final RiskAssessor riskAssessor;

@Autowired public DatabaseAccountService(RiskAssessor riskAssessor) {

this.riskAssessor = riskAssessor;

}

// …

}

请注意使用构造器注入允许使用final标记riskAssessor 对象,表明以后该对象不能被改变。

转载自 并发编程网 - ifeve.com

相关文章
|
17天前
|
存储 Java 数据安全/隐私保护
|
3天前
|
安全 Java 开发者
深入理解Spring Boot配置绑定及其实战应用
【4月更文挑战第10天】本文详细探讨了Spring Boot中配置绑定的核心概念,并结合实战示例,展示了如何在项目中有效地使用这些技术来管理和绑定配置属性。
10 1
|
1天前
|
XML Java 数据格式
Spring高手之路18——从XML配置角度理解Spring AOP
本文是全面解析面向切面编程的实践指南。通过深入讲解切面、连接点、通知等关键概念,以及通过XML配置实现Spring AOP的步骤。
21 6
Spring高手之路18——从XML配置角度理解Spring AOP
|
2天前
|
消息中间件 开发框架 Java
什么是Spring Boot 自动配置?
Spring Boot 是一个流行的 Java 开发框架,它提供了许多便利的功能和工具,帮助开发者快速构建应用程序。其中一个最引人注目的特性是其强大的自动配置功能。
6 0
|
5天前
|
Java Spring
Spring文件配置以及获取
Spring文件配置以及获取
11 0
|
11天前
|
Java 微服务 Spring
Spring Boot中获取配置参数的几种方法
Spring Boot中获取配置参数的几种方法
21 2
|
13天前
|
消息中间件 安全 Java
在Spring Bean中,如何通过Java配置类定义Bean?
【4月更文挑战第30天】在Spring Bean中,如何通过Java配置类定义Bean?
20 1
|
15天前
|
Java 开发者 Spring
Spring Boot中的资源文件属性配置
【4月更文挑战第28天】在Spring Boot应用程序中,配置文件是管理应用程序行为的重要组成部分。资源文件属性配置允许开发者在不重新编译代码的情况下,对应用程序进行灵活地配置和调整。本篇博客将介绍Spring Boot中资源文件属性配置的基本概念,并通过实际示例展示如何利用这一功能。
23 1
|
18天前
|
Java Spring 容器
如何用基于 Java 配置的方式配置 Spring?
如何用基于 Java 配置的方式配置 Spring?
|
19天前
|
存储 前端开发 Java
第十一章 Spring Cloud Alibaba nacos配置中心
第十一章 Spring Cloud Alibaba nacos配置中心
25 0