1. 程式人生 > >自學Springboot第一篇(快速入門)

自學Springboot第一篇(快速入門)

SpringBoot的核心入口類和@SpringBootApplication

Spring Boot的專案一般都會有*Application的入口類,入口類中會有main方法,這是一個標準的Java應用程式的入口方法。

@SpringBootApplication 註解是SpringBoot的核心註解

它其實是一個組合註解:@SpringBootConfiguration (替代@Configuration) + @EnableAutoConfiguration  +  @ComponentScan

@EnableAutoConfiguration 註解是啟用自動配置,該註解會使SpringBoot根據專案中依賴的jar包自動配置專案的配置項,還可以關閉某一項的自動配置從而自己手動配置。

比如:我們不想自動配置Redis,想手動配置 @SpringBootApplication(exclude = {RedisAutoConfiguration.class })

@ComponentScan:預設掃描@SpringBootApplication所在類的同級目錄以及它的子目錄中的所有註解。

快速入門示例

 1.設定spring boot的parent (pom.xml檔案)

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>1.5.9.RELEASE</version>
</parent>

 2. 匯入spring boot的web支援

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

3. 編寫第一個Spring Boot的應用

@RestController   //這個註解是個組合註解,等於 @Controller + @ResponseBody

@SpringBootApplication

public

class HelloApplication { 

    @GetMapping("hello")

        public String hello(){

        return "hello world";

    }

    public static void main(String[] args) {

        SpringApplication.run(HelloApplication.class, args);

    }

}

4. 執行main方法之後,直接在瀏覽器訪問 127.0.0.1:8080/hello

全域性配置檔案

Spring Boot專案使用一個全域性的配置檔案application.properties或者是application.yml,在resources目錄下或者類路徑下的/config下,一般我們放到resources下。

但是在一般在實際開發中,由於在每個開發環境中(開發、測試、生產)使用的配置會有一些細微的不同,會定義多個.properties檔案,根據application.properties檔案中的  spring.profiles.active = dev 或者 test 或者 prod 的屬性值,來根據不同的開發環境,指定使用哪一個配置檔案。

下面是一些常用的配置屬性

server.context-path=*.html 修改進入DispatcherServlet(前端控制器,就是瀏覽器的url字尾)的規則為:*.html
server.port=8080 設定tomcat的埠號

#資料庫配置
spring.datasource.druid.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.druid.url=jdbc:mariadb://11.111.1.111:3306/hsy
spring.datasource.druid.username=root
spring.datasource.druid.password=root

# druid 資料庫連線池配置(需要在pom.xml檔案中匯入druid-spring-boot-starter的依賴)
# 初始化連線數
spring.datasource.druid.initial-size=5
# 最小連線數
spring.datasource.druid.min-idle=5
# 最大連線數
spring.datasource.druid.max-active=20
# 獲取連線時最大等待時間,單位毫秒
spring.datasource.druid.max-wait=60000
# 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒
spring.datasource.druid.time-between-eviction-runs-millis=60000
# 配置一個連線在池中最小生存的時間,單位是毫秒
spring.datasource.druid.min-evictable-idle-time-millis=300000
# 用來檢測連線是否有效的SQL
spring.datasource.druid.validation-query=select 1
# 當空閒時,執行validationQuery檢測連線是否有效
spring.datasource.druid.test-while-idle=true
# 申請連線時執行validationQuery檢測連線是否有效,true會降低效能
spring.datasource.druid.test-on-borrow=false
# 歸還連線時執行validationQuery檢測連線是否有效,true會降低效能
spring.datasource.druid.test-on-return=false
# 是否開啟PSCache,支援Oracle、SQL Server、DB2、MySQL5.5+(含5.5)
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
spring.datasource.druid.filter.stat.enabled=true
# 通過connectProperties屬性來開啟mergeSql功能;慢SQL記錄,預設3秒
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.merge-sql=true

# mybatis Mapper
mybatis.mapper-locations=classpath:mapper/**/*.xml

#去除Json返回時的null值
spring.jackson.default-property-inclusion=non_null
# 日誌配置
logging.config=classpath:config/log4j2.xml

# jpush配置
jpush.appKey=5198487c595b7726190a928a
jpush.masterSecret=b863ac3e8842e7f3ce36b611

#token攔截器配置
video.excludePathPatterns=/deviceMgmt/*/equActivate

#ftp 配置
ftp.host=11.111.1.111
ftp.user-name=docker_ftp
ftp.password=123123