1.先建立项目
项目建立后,在application.properties配置端口:
server.port= 80
创建Control类:
@RestController
@RequestMapping("/haha")
public class TestControl {
@RequestMapping(path = {"/forever"})
public String HelloSpring(){
return "{data:hahaforever111}";
}
}
开启服务,输入地址:http://localhost/haha/forever,访问到数据。
2.集成mySql数据库:
在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配置数据库信息:
spring.datasource.url=jdbc:mysql://localhost:3306/myuserinfos?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
访问数据库代码:
@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.调用外部接口:
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方法可以添加参数
HttpHeaders headers = new HttpHeaders();
//设置请求发送方式
HttpMethod method = HttpMethod.POST;
// 以表单的方式提交
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
//将请求头部和参数合成一个请求
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(params, headers);
//执行HTTP请求,将返回的结构使用String 类格式化(可设置为对应返回值格式的类)
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>
调用控制器:
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"; //当浏览器输入/hhh,会返回 /templates/my_test_htfile.html页面
}
}
6.打包
继承SpringBootServletInitializer类,实现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下找到jar包,使用 java -jar xxx.jar命令开启服务
image.png
7.添加ssl证书:
先把证书文件拷贝到resources下,在application.properties下添加信息:
server.ssl.key-store=classpath:XXX.jks
server.ssl.key-store-password=XXXXXX
server.ssl.keyStoreType=JKS