SpringBoot——自动配置依赖[spring-boot-starter-XXX]

SpringBoot之所以流行的原因,主要就是因为自动配置依赖——【约定优先于配置】,提供日常企业应用的各种场景。有非常多的“开箱即用”的依赖模块,也是SpringBoot快速高效的原因。默认支持和提供了【80+的自动配置依赖模块】

SpringBoot提供的自动配置依赖模块都以spring-boot-starter-为命名前缀,并且这些依赖都在org.springframework.boot下。
所有的spring-boot-starter都有约定俗成的默认配置,但允许调整这些配置调整默认的行为。
这里写图片描述

SpringBoot默认的配置文件是application.properties

spring-boot-starter-XXX常用依赖

1、spring-boot-starter-logging
如果在pom.xml中配置了spring-boot-starter-logging,会使用logback作为应用日志框架。
只要将spring-boot-starter-logging作为依赖加入当前应用的classpath,无需多余的配置,“开箱即用”。
也可以SpringBoot提供的应用日志设定作调整
1、遵循logback约定,在classpath中做logback.xml配置
2、或者在随意一个地方提供logback.xml配置文件,在application.properties中制定配置
这里写图片描述

2、spring-boot-starter-log4j
很多人习惯用spring-boot-starter-log4j
这里写图片描述

3、spring-boot-starter-web
加入依赖直接得到一个可执行的基于SpringMVC 的web应用。
加入该依赖之后,可以直接开始编写Controller、Service、Reposity曾等。

spring-boot-starter-web依赖模块默认使用嵌入式tomcat作为web容器对外提供http服务,若不想使用tomcat(spring-boot-starter-tomcat是自动配置模块),可以引入spring-boot-starter-jetty等作为代替方案

spring-boot-starter-web提供了很多以server为前缀的配置项用于对嵌入式web容器提供配置。如【server.port、server.address、server.ssl.、server.tomcat.
SpringBoot甚至允许直接对嵌入式的web容器实例进行定制,可以通过向IOC容器中注册一个EmbeddedServletContainerCustomizer类型的组件对嵌入式web容器进行定制。

@SpringBootApplication
@EnableScheduling
/*@EnableTransactionManagement*/
public class BackStageApplication {

    public static void main(String[] args) {
        SpringApplication.run(BackStageApplication.class, args);
    } 
    /**
     * 自定义常见几种状态跳转路径,对应跳转到CustomExceptionController中进行相应处理
     * @return EmbeddedServletContainerCustomizer
     */
    @Bean
    public EmbeddedServletContainerCustomizer containerCustomizer() {
        return new EmbeddedServletContainerCustomizer() {
            @Override
            public void customize(ConfigurableEmbeddedServletContainer container) {
                ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/error/401");
                ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/error/404");
                ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error/500");
                container.addErrorPages(error401Page, error404Page, error500Page);
            }
        };
    }
}

4、spring-boot-starter-jdbc

使用该依赖,SpringBoot会自动配置访问数据的基本设施

spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=root

spring-boot-starter-jdbc以及相关的自动配置不是总是带来便利,在某些场景下,在一个应用中可能需要或依赖多个数据库,就会有多个datasource,配置就会出错。需要使用@Primary标志哪一个数据源是主数据源

SpringBoot还提供很多其他数据访问相关的自动配置模块,比如spring-boot-starter-data-jpaspring-boot-starter-data-mongdb,可以根据数据访问的具体场景使用这些自动配置模块

5、spring-boot-starter-aop
java平台上的AOP方案的历史:
代码生成–>动态代理–>字节码增强–>静态编译等…
现在比较通用的AOP方案:SpringAOP结合AspecJ的方式,即使用SpringAOP的面向对象的方式来编写和组织切入逻辑,并使用AspectJ的Pointcut描述语言配合Annotation来标注和指明切入点。
aop的应用场景很多,比如可以使用spring-boot-starter-aop
打造一个支持性能监控的工具
这里写图片描述
对于非功能性的代码,可以使用AOP的方式剥离到相应的AspectJ中单独维护。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值