Spring boot简述(待续)

来源:互联网 发布:linux如何查看内网ip 编辑:程序博客网 时间:2024/05/17 19:18
一、Spring boot:
Spring boot出现之后,得益于“习惯优于配置”这个理念,再也没有繁琐的配置、难以集成的内容(大多数流行第三方技术都被集成在内)。 那么背后实现的核心原理到底是什么呢? 其实是spring 4.x提供的基于条件配置bean的能力。
1、没有配置、没有web.xml、没有构建说明,甚至没有应用服务器;只要你搞定后台代码就ok;
2、SpringBoot的四个核心:
      自动配置:
      起步依赖:告诉它需要什么功能,它就引入需要的库;比如web起步依赖、jpa起步依赖等;
      命令行界面:可选功能;
      Actuator
3、自动配置说明
     3.1 自动配置可以被覆盖
     3.2 SpringBoot的设计是先加载应用级配置,再考虑自动配置;
     3.3 SpringBoot是基于条件化注解的
      如:@ConditionalOnBean   条件表示判断是否配置了某个特定的bean,条件成立才会执行被@ConditionalOnBean标注的类的方法,否则忽略;

     3.4    prefix(前缀形式)       eg:@ConfigurationProperties(prefix="amazon")/@ConfigurationProperties("amazon")这样的配置会自动去配置文件(applcation.properyies/applcation.yarm)匹配带有amazon前缀的属性,如:amazon.associateId=20,表示给带有amazon配置bean的associateId属性赋值
    3.5  使用Profile配置(Profile是一种条件话配置)
     作用:当程序需要部署到不同环境运行时(如正式环境和测试环境),有些Bean或者配置类可能在测试环境用不到配置的类,只在正式环境用,因为要用的环境需要运行时激活Profile;如果没有激活就会忽略该配置,而使用自动配置的安全配置;
 eg:@Profile("production")
        @configuration
      public class SecurityConfig{}


  3.5.1 可以使用特定的Profile的属性文件
如果你正在使用applcation.properyies,可以创建额外的属性文件,需要遵循applcation-{Profile}.properyies这种命名格式,{Profile}为注解可以为@Profile("production")中的production
1/applcation.properyies配置:Spring.profiles.active=production激活production Profile
2/applcation.yml配置如下:
spring:
    profiles:
             active:production
3.5.2 使用多Profile Yaml文件进行配置
既然用了yaml就可以将所有profile放在一个application.yml文件中,例如:
logging:
     level:
         root:INFO
---
spring:
       profiles:development
 logging:
     level:
         root:DEBUG
---
spring:
       profiles:production
 logging:
     path:/tmp
     file:Book.log
     level:
         root:WARN
第二段和第三段分别为spring.profiles指定一个值,这个值表示该部分应该应用在哪个Profile里,第二段中属性应用于开发环境,因为spring.profiles设置为development。
另一方面,第一段并未指定spring.profiles,因此这里的属性对全部Prifile或者对那些未设置该属性的激活Profile生效;

0 0
原创粉丝点击