`

Spring Boot 笔记 二 (核心)

 
阅读更多

一, 基本配置

   1), 入口类和@SpringBootApplicaiton

     通常有个*Application的入口类,里面有个main方法,启动Spring Boot应用项目.

   @SpringBootApplication 是一组注解(@Configuration, @EnableAutoConfiguration, @ComponentScan)的组合.

    2), 关闭特定的自动配置

    使用注解的exclude参数.

   e.g. @SpringBootApplication(exclude={DataSourceAutoApplication.class})

    3), 定制Banner

       a, 在Spring Boot 启动的时候有一个默认启动图案.

       b, 我们在src/main/resources下新建一个banner.txt

       c, 通过http://patorjk.com/software/taag网站生成字符,将生成的字符复制到banner.txt中

       d, 启动程序就是修改后的图案

    4), 关闭banner

     a, main 修改

      app = new SpringApplication(xx.class);

      app.setShowBanner(false);

      app.run(args);

     b, 使用fluent API修改

     new SpringApplicationBuilder(xx.class)

      .showBanner(false)

      .run(args); 

    5), Spring Boot 配置文件

    全局配置文件 application.properties 或application.yml

    放在src/main/resources目录或类路径的/config下

 备注: IDEA中 的@PropertySource注解不支持加载yaml文件

    6), starter POMs

       名称                                                        描述

spring-boot-starter核心Spring Boot starter,包括自动配置支持,日志和YAML

spring-boot-starter-actuator生产准备的特性,用于帮你监控和管理应用

spring-boot-starter-amqp对”高级消息队列协议”的支持,通过spring-rabbit实现

spring-boot-starter-aop对面向切面编程的支持,包括spring-aop和AspectJ

spring-boot-starter-batch对Spring Batch的支持,包括HSQLDB数据库

spring-boot-starter-cloud-connectors对Spring Cloud Connectors的支持,简化在云平台下(例如,Cloud Foundry 和Heroku)服务的连接

spring-boot-starter-data-elasticsearch对Elasticsearch搜索和分析引擎的支持,包括spring-data-elasticsearch

spring-boot-starter-data-gemfire对GemFire分布式数据存储的支持,包括spring-data-gemfire

spring-boot-starter-data-jpa对”Java持久化API”的支持,包括spring-data-jpa,spring-orm和Hibernate

spring-boot-starter-data-mongodb对MongoDB NOSQL数据库的支持,包括spring-data-mongodb

spring-boot-starter-data-rest对通过REST暴露Spring Data仓库的支持,通过spring-data-rest-webmvc实现

spring-boot-starter-data-solr对Apache Solr搜索平台的支持,包括spring-data-solr

spring-boot-starter-freemarker对FreeMarker模板引擎的支持

spring-boot-starter-groovy-templates对Groovy模板引擎的支持

spring-boot-starter-hateoas对基于HATEOAS的RESTful服务的支持,通过spring-hateoas实现

spring-boot-starter-hornetq对”Java消息服务API”的支持,通过HornetQ实现

spring-boot-starter-integration对普通spring-integration模块的支持

spring-boot-starter-jdbc对JDBC数据库的支持

spring-boot-starter-jersey对Jersey RESTful Web服务框架的支持

spring-boot-starter-jta-atomikos对JTA分布式事务的支持,通过Atomikos实现

spring-boot-starter-jta-bitronix对JTA分布式事务的支持,通过Bitronix实现

spring-boot-starter-mail对javax.mail的支持

spring-boot-starter-mobile对spring-mobile的支持

spring-boot-starter-mustache对Mustache模板引擎的支持

spring-boot-starter-redis对REDIS键值数据存储的支持,包括spring-redis

spring-boot-starter-security对spring-security的支持

spring-boot-starter-social-facebook对spring-social-facebook的支持

spring-boot-starter-social-linkedin对spring-social-linkedin的支持

spring-boot-starter-social-twitter对spring-social-twitter的支持

spring-boot-starter-test对常用测试依赖的支持,包括JUnit, Hamcrest和Mockito,还有spring-test模块

spring-boot-starter-thymeleaf对Thymeleaf模板引擎的支持,包括和Spring的集成

spring-boot-starter-velocity对Velocity模板引擎的支持

spring-boot-starter-web对全栈web开发的支持,包括Tomcat和spring-webmvc

spring-boot-starter-websocket对WebSocket开发的支持

spring-boot-starter-ws对Spring Web服务的支持

 

  7), xml 配置

  SB 建议零配置,如果需要可以通过@ImportResource来加载xml配置

 

二, 外部配置

   1), 常规属性配置

     @Value: 注入application.properties里面的值

   e.g.    @Value("${demo.name}")

    2), 类型安全的配置

     @Component

     @ConfigurationProperties(Prefix="demo")

  //@ConfigurationProperties(Prefix="demo", locations={"classpath:config/demo.properites"})

   Public class demo{

      private String name;

       get,set......

    }

   备注: V1.5以上去除了locations这个参数,可通过其他方式实现

 

三, 日志配置

  默认情况下, SB使用了LogBack作为日志框架

  配置日志级别: logging.file = d:/log.log

 logging.level.org.springframework.web=DEBUG

 

四, Profile配置

  Profile是Spring用来针对不同环境对不同配置的支持

  全局Profile使用 applicaiton-{profile}.properties

  通过applicaiton.properties中设置spring.profiles.active=prod来指定活动.

 

五, Spring Boot 运行原理

  • @ConditionalOnBean:当前容器有指定Bean的条件下。
  • @ConditionalOnClass:当前类路径下有指定的类的条件下。
  • @ConditionalOnExpression:基于SpEL表达式作为判断条件。
  • @ConditionalOnJava:基于JVM版本作为判断条件。
  • @ConditionalOnJndi:在JNDI存在的条件下查找指定的位置。
  • @ConditionalOnMissingBean:当容器里没有指定Bean的情况下。
  • @ConditionalOnMissingClass:当类路径下没有指定的类的条件下。
  • @ConditionalOnNotWebApplication:当前项目不是WEB项目的条件下。
  • @ConditionalOnProperty:指定属性是否有指定的值。
  • @ConditionalOnResource:类路径是否有指定的值。
  • @ConditionalOnSingleCandidate:当指定Bean在容器中只有一个,或者虽然有多个但 是指定首选的Bean。
  • @ConditionalOnWebApplication:当前项目是WEB项目的条件下。

 

  六, 示例

  附件为hello world demo.

   备注:

   1),如果没有在application.properties里面配置hello.msg, 那么结果就是缺省 hello world

   2), spring.factories文件中, 如果想要有多个自动配置,则用","隔开,里面的"\"是为了换行后仍可读取属性

   3), 不要忘了再pom.xml添加依赖

   4), 在application.properties中添加debug=true,可查看自动配置报告

 

分享到:
评论

相关推荐

    Spring Boot核心技术-笔记-pdf版.pdf

    **Spring Boot核心技术详解** Spring Boot是由Pivotal团队提供的全新框架,其设计目标是为了简化Spring应用的...希望这份学习笔记能帮助你深入理解和掌握Spring Boot的精髓,祝你在Spring Boot的学习之路上一帆风顺!

    Spring Boot 进阶笔记.pdf

    Spring Boot 进阶笔记 Spring Boot 是由 Pivotal 团队提供的全新框架,旨在简化 Spring 应用的初始搭建和开发过程。它使用 “约定大于配置” 的理念,让项目快速运行起来。 Spring Boot 设计的目的是让开发者尽可能...

    Spring Boot 进阶笔记(详细全面) 中文PDF完整版.pdf

    它的核心理念是“约定优于配置”,这意味着 Spring Boot 在默认情况下已经预设了很多常用的配置,减少了开发者手动配置的工作量。Spring Boot 不仅仅是一个框架,而是一系列库的集合,可以无缝集成到任何构建系统中...

    Spring Boot笔记

    基于给定的信息“Spring Boot笔记”,我们可以从以下几个方面来详细阐述相关的知识点: ### Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目标是简化新Spring应用的初始搭建以及开发过程。该...

    Spring boot 笔记

    ### Spring Boot 笔记 #### 一、Spring Boot 概述与重要性 Spring Boot 是由 Pivotal 团队提供的新一代框架,旨在简化 Spring 应用程序的启动配置及开发流程。它采用了一种独特的方式来减少样板代码的编写,从而...

    Spring Boot 笔记1

    在本篇Spring Boot笔记中,我们将探讨Spring Boot的核心特性、如何创建一个简单的Spring Boot应用以及相关的Maven配置。Spring Boot是Spring框架的一个扩展,旨在简化Spring应用的初始搭建以及开发过程,提供了一种...

    Spring Boot核心技术-笔记-pdf版.zip

    本资料为《Spring Boot核心技术-笔记-pdf版.zip》,包含了对Spring Boot核心概念的详细解读,是学习和掌握Spring Boot不可或缺的学习资源。 在Spring Boot的核心技术中,主要涉及以下几个关键点: 1. **起步依赖...

    Spring Boot核心技术 - 笔记.rar

    **Spring Boot核心技术笔记** Spring Boot是Java开发领域中一个非常受欢迎的框架,它极大地简化了创建独立、生产级别的基于Spring的应用程序的过程。Spring Boot的核心特性包括自动配置、起步依赖、内嵌Web服务器...

    spring-boot学习笔记

    ### Spring Boot 学习笔记知识点总结 #### 一、Spring发展史 - **Spring1.x时代**:在Spring1.x的时代,主要通过XML文件来配置Bean。随着项目的规模扩大,XML配置文件的数量也随之增加,这导致开发人员需要频繁地...

    Spring Boot 学习笔记完整教程.pdf

    文档《Spring Boot 学习笔记完整教程.pdf》涵盖了多个知识点,详细介绍了Spring Boot的基本使用方法以及一些高级功能的实现。以下是根据文档内容整理的知识点: 1. Spring Boot入门: Spring Boot让开发者能够通过...

    Spring Boot 笔记.rar

    尚硅谷的 Spring Boot 笔记涵盖了以上这些核心概念,并可能深入到实际应用案例、问题解决、最佳实践等方面,对于学习和进阶 Spring Boot 的开发者来说是一份宝贵的资源。通过阅读这些笔记,你可以更好地理解 Spring ...

    Spring Boot核心技术-笔记_springboot_

    这个"Spring Boot核心技术-笔记"涵盖了从基础到高级的大量知识点,旨在帮助开发者从入门到精通Spring Boot。以下是对这些核心概念的详细阐述: 1. **起步依赖(Starters)** Spring Boot通过起步依赖简化了依赖...

    spring-boot 笔记

    Spring Boot是基于Spring框架的开源Java应用程序框架,旨在简化Spring应用的初始搭建以及开发过程。它包含了一系列大型项目常用的默认配置,从而让开发者能够以最小的配置来使用Spring框架的各项功能。Spring Boot...

    Spring Boot核心笔记.pdf

    Spring Boot的核心特点之一是能够独立运行,即所谓的“约定优于配置”。使用Spring Boot,开发者可以创建独立的、生产级别的Spring基础应用。 **知识点一:Spring Boot简介** Spring Boot被设计为可以创建独立的...

    Spring Boot笔记.docx

    引入`spring-boot-starter-web`依赖,它包含了Spring MVC和Tomcat等Web开发所需的核心组件: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-web ``` 4. 编写控制器与...

    Spring Boot笔记.md

    Spring Boot 是一个快速开发框架,可以迅速搭建出一套基于 Spring 框架体系的应用,是 Spring Cloud 的基础。 Spring Boot 开启了各种自动装配,从而简化代码的开发,不需要编写各种配置文件,只需要引入相关依赖就...

    Spring Boot核心技术-笔记

    这个"Spring Boot核心技术-笔记"很可能包含了关于如何利用Spring Boot进行高效开发的关键概念和实践。下面,我们将深入探讨Spring Boot的一些核心特性、概念以及它们在实际应用中的作用。 1. **自动配置**:Spring ...

    Spring Boot 2.5.0简单学习pdf资料

    Spring Boot 2.5.0 简单学习pdf 资料 Spring Boot 是一个基于Java的开源框架,旨在简化Spring应用程序的搭建和开发。Spring Boot 2.5.0 是 Spring Boot 的一个版本,提供了许多新的特性和改进。下面是 Spring Boot ...

Global site tag (gtag.js) - Google Analytics