我是靠谱客的博主 自由夏天,最近开发中收集的这篇文章主要介绍SpringBoot练习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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练习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部