概述
1.起势
1.简单的包结构
pojo-dao-service-controller
i18n-resources-static templates
2.静态资源映射规则
1.webjars
以jar包方式引入资源
2.静态资源文件夹
3.首页
静态资源文件夹下的index.html
4.配置网页图标
所有的favicon.ico都是在静态资源文件夹下寻找
自定义静态资源文件夹
spring.resources.static-locations=classpath:/test1/,classpath:/test2/
更改项目访问名
server.context-path=/myself
3.设置模板引擎
SpringBoot默认使用嵌入式Tomcat,不支持JSP
推荐使用Thymeleaf(语法更简单,功能更强大 )
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
修改版本号
<thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>
2.2.2
</thymeleaf-layout-dialect.version>
Thymeleaf语法规则规则
2.扩展springmvc的功能
@Configuration
extends WebMvcConfigurerAdapter
1.设置首页
添加视图映射,直接把指定页面设置为首页
@Bean
public WebMvcConfigurerAdapter webMvcConfigurerAdapter() {
WebMvcConfigurerAdapter adapter = new WebMvcConfigurerAdapter() {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("login");
registry.addViewController("/index.html").setViewName("login");
}
};
return adapter;
}
登录错误提示:
返回报错信息,页面接收并展示
<p style="color: red;" th:text="${msg}" th:if="${not #strings.isEmpty(msg)}"></p>
2.设置拦截器
避免用户绕过登录界面直接跳入后台
1)编写拦截器(方法之前)
implements HandlerInterceptor {
Object user = request.getSession().getAttribute("username");
if (user == null) {
//未登录
request.setAttribute("msg","没有权限,请先登录");
request.getRequestDispatcher("/").forward(request,response);
return false;
}
return true;
}
2)注册拦截器
/*自动做好静态资源映射,只需要排除登录界面和登录请求即可*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**").excludePathPatterns("/", "/index.html", "/user/login");
}
2.集成日志
抽象层 : SLF4J
实现层 : LogBack
如何让系统中所有的日志都统一到slf4j;
1、将系统中其他日志框架先排除出去;
2、用中间包来替换原有的日志框架;
3、我们导入slf4j其他的实现
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloWorld {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info("Hello World");
}
}
logging.file=springboot.log
#当前路径下的springboot.log文件
logging.path=/springboot/log
#spring.log为默认文件
#
在控制台输出的日志的格式
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
# 指定文件中日志输出的格式
logging.pattern.file=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} ==== %msg%n
指定框架配置文件
logback-spring.xml
@EndWebMvc
全面接管sping配置(不建议使用)
6.定制错误页面
其实设置过拦截器后,当访问错误页面时,总会跳至首页。
为的是登陆后的报错提示而准备。
3.RestfulCRUD
CRUD满足Rest风格;
URI: /资源名称/资源标识 HTTP请求方式区分对资源CRUD操作
普通CRUD(uri来区分操作) | RestfulCRUD |
---|---|
查询 | getEmp |
添加 | addEmp?xxx |
修改 | updateEmp?id=xxx&xxx=xx |
删除 | deleteEmp?id=1 |
简单说一下修改和删除
修改
为简化开发,修改和新增使用同一界面
跳入界面提前判断当前是否有传入数据(有数据则是修改,没有数据是新增)
th:value="${emp!=null}?${emp.lastName}"
th:text="${emp!=null}?'修改':'添加'"
根据CRUD规则,新增是POST请求,修改是PUT请求
<input type="hidden" name="_method" value="put" th:if="${emp!=null}"/>
<input type="hidden" name="id" th:if="${emp!=null}" th:value="${emp.id}">
删除
删除使用form表单提交
为避免每一个删除按键都是form,将表单单独拿出,使用js提交。
<button th:attr="del_uri=@{/emp/}+${emp.id}" class="btn btn-sm btn-danger deleteBtn">删除</button>
th:attr=”del_uri=@{/emp/}+${emp.id}” : 自定义del_uri属性,放入当前id
<form
method="post" id="del">
<input type="hidden" name="_method" value="delete">
</form>
定义提交的表单
<script>
$(".deleteBtn").click(function () {
$("#del").attr("action",$(this).attr("del_uri")).submit();
return false;
});
</script>
国际化
CSDN博客总结
天气接口
支付接口
SSO单点登录
最后
以上就是自由夏天为你收集整理的SpringBoot练习的全部内容,希望文章能够帮你解决SpringBoot练习所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复