自學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
@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