1.先建立項目
項目建立后隙券,在application.properties配置端口:
server.port= 80
創(chuàng)建Control類:
@RestController
@RequestMapping("/haha")
public class TestControl {
@RequestMapping(path = {"/forever"})
public String HelloSpring(){
return "{data:hahaforever111}";
}
}
開啟服務(wù)胯甩,輸入地址:http://localhost/haha/forever客扎,訪問到數(shù)據(jù)。
2.集成mySql數(shù)據(jù)庫:
在pom.xml里添加依賴:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
在application.properties配置數(shù)據(jù)庫信息:
spring.datasource.url=jdbc:mysql://localhost:3306/myuserinfos?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
訪問數(shù)據(jù)庫代碼:
@Autowired
private JdbcTemplate jdbcTemplate;
@RequestMapping("/getForever")
public String getDbType() {
String sql = "select * from user_info_haha";
Map a = (Map) jdbcTemplate.queryForList(sql).get(0);
return "{data:\""+a.get("name").toString()+"\"}";
}
3.傳參方式:
@RequestMapping(path = {"/getParamDemo1/{id}"})
public String getParamDemo1 (@PathVariable("id") int userId){
System.out.println("get param " + userId);
return "success get param "+userId;
}
@RequestMapping(path = {"/getParamDemo2"} ,method = RequestMethod.GET)
public String getParamDemo2 (@RequestParam(value="param1",required = false) int param){
System.out.println("get param " + param);
return "success get param "+param;
}
4.調(diào)用外部接口:
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
@Service
public class MTestClient {
public static String sendPostRequest(String url, MultiValueMap<String, String> params){
RestTemplate client = new RestTemplate();
//新建Http頭步做,add方法可以添加參數(shù)
HttpHeaders headers = new HttpHeaders();
//設(shè)置請求發(fā)送方式
HttpMethod method = HttpMethod.POST;
// 以表單的方式提交
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
//將請求頭部和參數(shù)合成一個請求
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(params, headers);
//執(zhí)行HTTP請求卡乾,將返回的結(jié)構(gòu)使用String 類格式化(可設(shè)置為對應(yīng)返回值格式的類)
ResponseEntity<String> response = client.exchange(url, method, requestEntity,String .class);
return response.getBody();
}
}
5.顯示html頁:
在templates下添加html文件,
在application.properties下添加代碼:
spring.mvc.view.prefix=classpath:/templates/
spring.mvc.view.suffix=.html
在pom.xml中添加依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
調(diào)用控制器:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/ht")
public class HtmlControl {
@RequestMapping("/hhh")
public String toHtml(){
return "my_test_htfile"; //當(dāng)瀏覽器輸入/hhh信卡,會返回 /templates/my_test_htfile.html頁面
}
}
6.打包
繼承SpringBootServletInitializer類隔缀,實現(xiàn)configure方法:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override//為了打包springboot項目
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
}
在pom下添加代碼:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.lml.demo.DemoApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
選中clean complie package 點擊運行:
image.png
最后在target下找到j(luò)ar包,使用 java -jar xxx.jar命令開啟服務(wù)
image.png
7.添加ssl證書:
先把證書文件拷貝到resources下傍菇,在application.properties下添加信息:
server.ssl.key-store=classpath:XXX.jks
server.ssl.key-store-password=XXXXXX
server.ssl.keyStoreType=JKS