Java 1.8,IDEA 2018.1
gradle
Spring Boot 2.2 增加了对Java 13的支持 对于老版本的Java 11、Java 8依然支持良好。所以,对于还在使用Java 8的用户也可以安心的升级使用。
http://start.spring.io
配置 VPN 代理
新建项目
File-New-Project-Spring Initializr 选择 Gradle 工程,JAR 包,JAVA 11
依赖选择 Web, thymeleaf,mongodb
如果之前装了 java 8, 需要修改一下配置,settings/build,execution,deployment/Gradle/ 修改 JVM 版本
创建基本目录结构:common,controller,model,repository,service

引入 bootstrap 4.3.1
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
|
静态资源的引用
using webjars
在 resources/templates 下面创建 index.html
https://www.webjars.org/
使用 webjars 引用公共静态资源
http://localhost:8080/webjars/jquery/3.4.1/jquery.js
|
using resources
默认的静态资源存放路径 resources/static
使用 thymeleaf
- 导入名称空间
<html lang="en" xmlns:th="http://www.thymeleaf.org">
|
- 使用 th:xxx 语法替换原生属性值
使用 font awsome 5
在 css 里面配置时,出现小方块,不显示图标问题,在 html 里面配置时,正常
```
## 添加日志
spring boot 默认是 info 可以在 application.properties 里面添加
```yaml # com.example.demo 是项目包,日志可以指定包设置 logging.level.com.example.demo=trace # 当前项目路径下生成 logging.file.name=demo.log # / 表示当前磁盘根路径 #logging.file.path=/demo/log/demo.log
|
Logger logger = LoggerFactory.getLogger(getClass());
logger.trace("log trace"); logger.debug("log debug"); logger.info("log info"); logger.warn("log warn"); logger.error("log error");
|
增加配置类,扩展 mvc 配置
@Configuration public class extMvcConfig implements WebMvcConfigurer {
@Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/main").setViewName("dashboard"); } }
|
使用拦截器检查登陆权限
public class extLoginInterceptor implements HandlerInterceptor {
@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Object user = request.getSession().getAttribute("loginUser"); if (user == null){ request.setAttribute("msg","没有权限,请登录."); request.getRequestDispatcher("/index.html").forward(request,response); return false; }else { return true; } } }
@Configuration public class extMvcConfig implements WebMvcConfigurer {
@Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/dashboard.html").setViewName("dashboard"); registry.addViewController("/").setViewName("index"); registry.addViewController("/index.html").setViewName("index"); }
@Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new extLoginInterceptor()).addPathPatterns("/**").excludePathPatterns("/index.html","/","/index","/static/**"); } }
|
设置多个环境配置
# 默认使用 application.properties 可以创建 application-{profile}.properties 例如: application-develop.properties
然后在 application.properties 里面配置 spring.profiles.active=develop
|
有个文档块模式可以分开写不同的配置
使用 --- 区分配置块 ---
|
激活配置文件
java -jar xxx.jar --spring.profiles.active=develop
|
集成 Swagger2
添加插件, 在这里获取 https://mvnrepository.com/
// https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' // https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'
|
运行后访问如下地址
http://localhost:8080/swagger-ui.html
user Model
创建 java class modelUser
model-modelUser
@ApiModel(value="User 对象",description="User 对象类的相关描述") public class modelUser {
@ApiModelProperty(value="user name",name="name",example="小明",required=true) public String name; @ApiModelProperty(value="user password",name="password",example="123456",required=true) public String password; @ApiModelProperty(value="user email",name="email",example="xm@126.com") public String email; @ApiModelProperty(value="user cellphone",name="phone",example="13812811234") public String phone; @ApiModelProperty(value="user register date",name="registerDate",example="2018-01-02 08:08:08") public String registerDate; @ApiModelProperty(value="user last login date",name="lastLoginDate",example="2018-01-03 08:08:18") public String lastLoginDate; @ApiModelProperty(value="user flag, -1 delete,0 not use, 1 active, ",name="flag",example="00",allowableValues = "-1,0,1") public int flag; ... }
|
modelResult 作为返回对象
@ApiModel(value = "Result 对象", description = "Result 对象类的相关描述") public class modelResult { @ApiModelProperty(value = "Result code", name = "code", example = "0", required = true) public Integer code; @ApiModelProperty(value = "Result message", name = "msg", example = "success", required = true) public String msg; @ApiModelProperty(value = "Result timestamp", name = "timestamp", example = "2018-01-01 12:21:12.111", required = true) public String timestamp; @ApiModelProperty(value = "Specific data Optional,should be json format", name = "data", example = "null") public Object datas; ... }
|
实现了简单的 CRUD 操作
发布项目
IDEA 右边的 Gradle-build-bootJar 双击即可,然后部署上去 java -jar xx.jar 就可以启动了
如果右边没有发现 Gradle 选项,那么关闭 idea 再重新打开就应该有了。
