編寫Spring Boot啓動類
package com.rz;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/***
* 啓動類
*/
@SpringBootApplication //告訴程序是個spring boot項目
@RestController //表示這是一個提供restful風格服務的類
public class DemoApplication {
/***
* spring標準啓動方式
* @param args
*/
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class,args);
}
@GetMapping("/hello")
public String hello(){
return "hello spring security";
}
}
這樣我們可以運行第一個SpringBoot項目了,但是還有一點小錯誤:
可能出現的問題:
Cannot determine embedded database driver class for database type NONE
原因:maven依賴中添加了jdbc驅動,但是項目裏面沒有指定具體的數據庫連接
解決方法:在resources目錄下新建application.yml文件,添加以下內容:
spring:
datasource:
password: 123456
driver-class-name: com.mysql.jdbc.Driver
username: root
url: jdbc:mysql://192.168.0.137:3306/test_zq?useUnicode=true&characterEncoding=utf-8
可能出現的問題:
No Spring Session store is configured: set the ‘spring.session.store-type’ property
原因:maven依賴中添加了spring-session的依賴,但是spring session的存儲沒有被配置
解決方法:暫時在application.yml文件中關閉,添加以下內容:
spring:
datasource:
password: root
driver-class-name: com.mysql.jdbc.Driver
username: root
url: jdbc:mysql://192.168.0.137:3306/test_zq?useUnicode=true&characterEncoding=utf-8
session:
store-type: none
server:
port: 80
現在項目可以進行訪問了,但是系統會默認彈出一個http basic的身份認證框,這是由於maven中依賴了Spring Security的jar包,默認是開啓身份認證的,有兩種方式可以解決:
1.在application.yml中添加配置:
security:
basic:
enabled: false
2.在每次項目啓動的時候,用戶名是user,系統會自動生成一個密碼,類似下面這樣的:
Using default security password: 86d43b9f-7926-43a3-bffa-6b238c54a65b
項目打包:
方式一:在idea的右側選擇Maven Projects,選擇父工程rz-security下的Lifecycle下的package命令。
方式二:點擊右上角的點擊Edit Configurations…圖標,然後點擊“+”號,選中maven,選擇好項目路徑,在name中自定義命令名,在Command line填寫執行命令,完成即可運行。
這兩者方式都會在每一個工程下下的target文件夾下生成一個jar包文件,但是這些jar包是不符合要求的,不能運行,我們這個工程是war包工程,這樣打包有許多依賴的jar包沒有打進來,我們需要的是一個可執行的jar包文件
解決辦法:
在rz-security-demo的pom.xml文件中添加插件,它會按照Springboot特有的方式進行打包會生成一個可執行jar包
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>rz-security</artifactId>
<groupId>com.rz.security</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../rz-security/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>rz-security-demo</artifactId>
<dependencies>
<dependency>
<groupId>com.rz.security</groupId>
<artifactId>rz-security-browser</artifactId>
<version>${rz-security-version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
<!-- wiremock -->
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.3.3.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<finalName>demo</finalName>
</build> <!--最終jar包名-->
</project>
其實我們可以在命令行啓動可執行jar包:先進入jar包的所在目錄,然後輸入:
java -jar demo.jar
這樣項目啓動 了,它和在idea中 main函數中啓動是一樣的
說明:Springboot是不需要tomcat運行環境的,相反tomcat內嵌在可執行jar包裏面