SpringBoot(2)之自定義配置

覆蓋 Spring Boot 自動配置

使用SpringSecurity

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-security</artifactId>
</dependency>

建立自定義的安全配置

  • 擴展了WebSecurityConfigurerAdapter的配置類

經過屬性文件外置配置

Spring Boot能從多種屬性源得到屬性【按照優先級排序】java

  • (1) 命令行參數
  • (2) java:comp/env裏的JNDI屬性
  • (3) JVM系統屬性
  • (4) 操做系統環境變量
  • (5) 隨機生成的帶random.*前綴的屬性(在設置其餘屬性時,能夠引用它們,好比${random. long})
  • (6) 應用程序之外的application.properties或者appliaction.yml文件
  • (7) 打包在應用程序內的application.properties或者appliaction.yml文件
  • (8) 經過@PropertySource標註的屬性源
  • (9) 默認屬性

application.properties和application.yml文件能放在如下四個位置【按照優先級排序】mysql

  • (1) 外置,在相對於應用程序運行目錄的/config子目錄裏。
  • (2) 外置,在應用程序運行的目錄裏。
  • (3) 內置,在config包內。
  • (4) 內置,在Classpath根目錄。

自動配置微調

  1. 禁用模板緩存
  • spring.freemarker.cache(Freemarker)
  • spring.groovy.template.cache(Groovy模板)
  • spring.velocity.cache(Velocity)
  • spring.thymeleaf.cache
  1. 配置嵌入式服務器
server:
 port: 8443
 ssl:
    key-store: file:///path/to/mykeys.jks 
    key-store-password: letmein
    key-password: letmein

配置日誌web

  • 日誌yml配置
logging:
 path: /var/logs/
 file: BookWorm.log
     level:
     root: WARN
     org:
        springframework:
            security: DEBUG 
默認狀況下,日誌文件的大小達到10MB時會切分一次。
  • 要徹底掌握日誌配置,能夠在Classpath的根目錄(src/main/resources)裏建立logback.xml文件。
  • 自定義配置
經過logging.config屬性指定自定義的名字:
logging:
 config:
    classpath:logging-config.xml

配置數據源spring

spring:
 datasource:
     url: jdbc:mysql://localhost/readinglist
     username: dbuser
     password: dbpass 
     driver-class-name: com.mysql.jdbc.Driver

應用程序 Bean 的配置外置sql

  • 在類前面加上
@ConfigurationProperties(prefix="amazon")
  • yml
amazon:
 associateId: habuma-20
  • 開啓配置屬性
,@ConfigurationProperties註解不會生效,除
非先向Spring配置類添加@EnableConfigurationProperties註解。但一般無需這麼
作,由於Spring Boot自動配置後面的所有配置類都已經加上了@EnableConfigurationProperties註解。
amazon.associateId = amazon.associate_id =  amazon.associate-id

使用 Profile 進行配置apache

  • Profile是一種條件化配置,基於運行時激活的Profile,會 使用或者忽略不一樣的Bean或配置類
spring:
 profiles:
    active: production 
 
 
logging:
 level:
    root: INFO
---
spring:
 profiles: development
logging:
 level:
    root: DEBUG
---
spring:
 profiles: production
logging:
 path: /tmp/
 file: BookWorm.log
 level:
    root: WARN 

使用一組三個連字符(---)做爲分隔符

web項目打jar 支持運行jsp

  • maven配置
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!--目前1.4.2版本支持-->
                <version>1.4.2.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <!-- 指定resources插件處理哪一個目錄下的資源文件 -->
                <directory>src/main/webapp</directory>
                <!--注意這次必需要放在此目錄下才能被訪問到-->
                <targetPath>META-INF/resources</targetPath>
                <includes>
                    <include>**/**</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/**</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
    </build>
相關文章
相關標籤/搜索