请选择 进入手机版 | 继续访问电脑版

热点推荐

查看: 90|回复: 0

SpringBoot

[复制链接]

该用户从未签到

12

主题

12

帖子

36

积分

新手上路

Rank: 1

积分
36
发表于 2020-2-14 19:13:26 | 显示全部楼层 |阅读模式
@SpringBootAplication 表示主程序类  或者说是主配置类,表示这是一个sprongboot应用
SpringAplication.run(主程序类名.class,args)启动spring程序
start启动器,直接引入了版本和版本号,可以防止版本冲突。
spring-boot-start-xxx:场景启动器
springboot项目下的扫描的组件必须在主配置类包下,这样才能扫描到容器中
@EnableAutoConfiguration 通过spring.properties文件获取 自动配置类
resource目录结构
static:保存静态资源
templates:保存模板,不支持jsp,但支持模板引擎
application.properties:应用的配置文件  固定文件名
YAML:
1.注意语法,以空格表示层级
2.值有三种:字变量   ” 不会转义,对象,数组
@ConfigurationProperties(prefix=“xxx”):这个注解的作用是将本类的属性与配置文件中属性互相绑定,而且必须使用@Component注册到容器中
添加依赖
            org.springframework.boot        spring-boot-configuration-processor        true    @Value注解,注入值 ¥{xxx},从配置文件中获取值,#{SpEL}比如#{11*2}
@Valid 用在类名上用于校验启动JSR303,@Email用于邮箱校验
@PropertySource(value = {"classpath:person.properties"})作用于改变加载默认配置文件
@ImportResource( locations = {"classpath:person.xml"})这个用于主配置类下,用于将配置加入容器中
@Configuration :表明这是一个配置类
profiles作用是在不同条件下使用不同配置:在配置文件中这么设置spring.profiles.active=xxx,配置文件命名规则application-xxx.properties
日志,logging.file=xxx.log
中文编码问题:
  spring.http.encoding.force=true  spring.http.encoding.charset=UTF-8  spring.http.encoding.enabled=true  server.tomcat.uri-encoding=UTF-8SpringBoot对静态资源的映射规则:
1)、webjars,以jar包的形式引入所有都在webjars/,在classpath:/META-INF/resources/webjars。搜索webjar,引入对应的maven坐标
2)、“/
”访问当前项目下的所有资源,查找路径,“classpath:/META-INF/resources”,"classpath:/resources/","classpath:/static/","classpath:/public/"
3)、欢迎页面为index.html
4)、所有的**/favicon.ico都是在静态资源文件下
Thymeleaf

1)、引入坐标
            org.springframework.boot        spring-boot-starter-thymeleaf    2)、导入命名空间
  3)、使用语法
th:text:指定文本内容
th:任意html元素
${...}:1.获取对象的属性、调用方法、
2.使用内置对象
3.内置的一些工具对象
/             #{...}:获得国际化内容
@{...}:定义URL链接的
~{...}:片段引用的表达式
视图解析器,只需要自己编写一个视图解析器,容器就会将他加入进来
自动注册Converter:转换器,Formatter:格式化器,
修改SpringBoot默认配置,先看容器中有没有用户自己配置的组件,如果有则导入用户自己配置的组件
1)、WebMvcAutoConfiguration是SpringBoot的自动配置类
2)、在做其他配置时自动导入
3)、WebMvcConfigurer会一起作用
4)、自己写的配置类也会被调用
@EnableMVC 全面接管SpringMVC
WebMvcConfigurerAdapter组件都会一起起作用
@Configuration//配置类public class MyConfiguration implements WebMvcConfigurer {@Overridepublic void addViewControllers(ViewControllerRegistry registry) {    registry.addViewController("/hello").setViewName("index");}}国际化
1)、抽取国际化配置文件,抽取页面需要显示的国际化消息
2)、创建文件i18n,
xxx.properties;
xxx_zh_CN.properties;
person_zh_CN.properties
3)、点击下列Resource Bundle,添加KV
4)、设置国际化资源位置spring.messages.basename=i18n.xxx
5)、去页面获取国际化的值,thymeleaf使用#{xxx}取得国际化的值
MessageSourceAutoConfiguration
国际化原理:获取区域信息对象,localeResolver ,根据request的获取区域信息进行国际化
通过按钮实现语言切换功能@{/index}:,继承LocalResolver,
public class MyLocalResolver implements LocaleResolver {@Overridepublic Locale resolveLocale(HttpServletRequest httpServletRequest) {    String i = httpServletRequest.getParameter("l");    Locale locale =Locale.getDefault();    if (!StringUtils.isEmpty(i))    {        String[] split = i.split("_");        locale = new Local(split[0], split[1]);        return locale;    }    return locale;}@Overridepublic void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {}}@RequestParam("xxx") 必须提交的参数
spring.thymeleaf.cache=false 将thymeleaf缓存取消。然后按Crtl+F9,更新页面
   #xxx使用内置对象拦截器机制

  public class LoginHandleIntercepter implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {    Object s = request.getSession().getAttribute("loginUser");    if (s==null)    {        request.setAttribute("msg","没有权限");        request.getRequestDispatcher("/").forward(request,response);        return false;    }else {        return true;    }}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {}}需要在配置类中添加组件
RestfulCRUD与普通CRUD的区别是,使用特定的请求方式来完成数据操作
spring.mvc.date-format=yyyy-MM-dd HH:mm 指定date格式
@PathVariable("xxx") 获取路径变量的值
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表