Fork me on GitHub

SpringBoot-09-页面国际化

SpringBoot-09-页面国际化

  • 有的时候,我们的网站会去涉及中英文甚至多语言的切换,这时候就需要学习国际化了!

1. 准备工作

  • 先在IDEA中统一设置properties的编码问题!

  • 编写国际化配置文件,抽取页面需要显示的国际化页面消息。可以去登录页面查看一下,哪些内容我们需要编写国际化的配置!
阅读更多...

SpringBoot-08-整合SpringMVC

SpringBoot-08-整合SpringMVC

0. 前言

官方文档:springmvc AutoConfiguration解释如下:

Spring Boot provides auto-configuration for Spring MVC that works well with most applications.

The auto-configuration adds the following features on top of Spring’s defaults:

  • Inclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans.
    • 视图解析器
  • Support for serving static resources, including support for WebJars (covered later in this document)).
    • 静态资源的映射
  • Automatic registration of Converter, GenericConverter, and Formatter beans.
    • 格式的转换,对象的自动合成
  • Support for HttpMessageConverters (covered later in this document).
    • 转换http的请求和响应
  • Automatic registration of MessageCodesResolver (covered later in this document).
  • Static index.html support.
  • Custom Favicon support (covered later in this document).
  • Automatic use of a ConfigurableWebBindingInitializer bean (covered later in this document).
    • 数据的初始化绑定

总结:如果想要使用自己定制化的东西,我们只需要给容器中添加这个组件就好了!剩下的事情SpringBoot就会帮我们做了!

文档分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# Spring MVC Auto-configuration
// Spring Boot为Spring MVC提供了自动配置,它可以很好地与大多数应用程序一起工作
Spring Boot provides auto-configuration for Spring MVC that works well with most applications.
// 自动配置在Spring默认设置的基础上添加了以下功能:
The auto-configuration adds the following features on top of Spring’s defaults:
// 包含视图解析器
Inclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans.
// 支持静态资源文件夹的路径,以及webjars
Support for serving static resources, including support for WebJars (covered later in this document)).
// 自动注册了Converter:
// 转换器:这就是网页提交数据到后台自动封装成为对象的东西,比如把“1”字符串自动转换成int类型
// Formatter:【格式化器,比如页面给我们了一个2019-8-10,它会给我们自动格式化为Date对象】
Automatic registration of Converter, GenericConverter, and Formatter beans.
//SpringMVC用来转换Http请求和响应的,比如可以把一个User对象转换成JSON字符串
Support for HttpMessageConverters (covered later in this document).
// 定义错误代码生成规则的
Automatic registration of MessageCodesResolver (covered later in this document).
// 首页定制
Static index.html support.
//图标定制
Custom Favicon support (covered later in this document).
//初始化数据绑定器:帮我们把请求数据绑定到JavaBean中
Automatic use of a ConfigurableWebBindingInitializer bean (covered later in this document).

Spring MVC Auto-configuration
// Spring Boot为Spring MVC提供了自动配置,它可以很好地与大多数应用程序一起工作。
Spring Boot provides auto-configuration for Spring MVC that works well with most applications.
// 自动配置在Spring默认设置的基础上添加了以下功能:
The auto-configuration adds the following features on top of Spring’s defaults:
// 包含视图解析器
Inclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans.
// 支持静态资源文件夹的路径,以及webjars
Support for serving static resources, including support for WebJars
// 自动注册了Converter:
// 转换器,这就是我们网页提交数据到后台自动封装成为对象的东西,比如把"1"字符串自动转换为int类型
// Formatter:【格式化器,比如页面给我们了一个2019-8-10,它会给我们自动格式化为Date对象】
Automatic registration of Converter, GenericConverter, and Formatter beans.
// HttpMessageConverters
// SpringMVC用来转换Http请求和响应的的,比如我们要把一个User对象转换为JSON字符串,可以去看官网文档解释;
Support for HttpMessageConverters (covered later in this document).
// 定义错误代码生成规则的
Automatic registration of MessageCodesResolver (covered later in this document).
// 首页定制
Static index.html support.
// 图标定制
Custom Favicon support (covered later in this document).
// 初始化数据绑定器:帮我们把请求数据绑定到JavaBean中!
Automatic use of a ConfigurableWebBindingInitializer bean (covered later in this document).

/*
如果您希望保留Spring Boot MVC功能,并且希望添加其他MVC配置(拦截器、格式化程序、视图控制器和其他功能),则可以添加自己
的@configuration类,类型为webmvcconfiguer,但不添加@EnableWebMvc。

如果希望提供
RequestMappingHandlerMapping、RequestMappingHandlerAdapter或ExceptionHandlerExceptionResolver的自定义
实例,则可以声明WebMVCregistrationAdapter实例来提供此类组件。
*/
If you want to keep those Spring Boot MVC customizations and make more MVC customizations (interceptors, formatters, view controllers, and other features), you can add your own @Configuration class of type WebMvcConfigurer but without @EnableWebMvc.

If you want to provide custom instances of RequestMappingHandlerMapping, RequestMappingHandlerAdapter, or ExceptionHandlerExceptionResolver, and still keep the Spring Boot MVC customizations, you can declare a bean of type WebMvcRegistrations and use it to provide custom instances of those components.

// 如果您想完全控制Spring MVC,可以添加自己的@Configuration,并用@EnableWebMvc进行注释。
If you want to take complete control of Spring MVC, you can add your own @Configuration annotated with @EnableWebMvc, or alternatively add your own @Configuration-annotated DelegatingWebMvcConfiguration as described in the Javadoc of @EnableWebMvc.
阅读更多...

Python-02-函数

Python-02-函数

1. 数学中的函数

我们知道圆的面积计算公式为:

S = πr2

当我们知道半径r的值时,就可以根据公式计算出面积。假设我们需要计算3个不同大小的圆的面积:

1
2
3
4
5
6
r1 = 12.34
r2 = 9.08
r3 = 73.1
s1 = 3.14 * r1 * r1
s2 = 3.14 * r2 * r2
s3 = 3.14 * r3 * r3

当代码出现有规律的重复的时候,你就需要当心了,每次写3.14 * x * x不仅很麻烦,而且,如果要把3.14改成3.14159265359的时候,得全部替换。

有了函数,我们就不再每次写s = 3.14 * x * x,而是写成更有意义的函数调用s = area_of_circle(x),而函数area_of_circle本身只需要写一次,就可以多次调用。

基本上所有的高级语言都支持函数,Python也不例外。Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用。

阅读更多...

JDK1.8源码-02-java.lang.Integer

JDK1.8源码-02-java.lang.Integer

上一篇介绍了 java.lang 包下的 Object 类,那么本篇接着介绍该包下的另一个类 Integer。

首先看看Integer类和int类型的区别:

  • Integer是int的包装类,int是八大数据类型之一(byte,char,short,int,long,float,double,boolean)
  • Integer是类,默认类型是null;int是基本数据类型,默认值是0;
  • Integer表示对象,用一个引用指向这个对象,而int是基本数据类型,直接存储数值。
阅读更多...

SpringBoot-07-Thymeleaf模板引擎

SpringBoot-07-Thymeleaf模板引擎

1. 模板引擎

  • 前端交给我们的页面,是html页面。如果是以前开发,需要把他们转成jsp页面,jsp好处就是当我们查出一些数据转发到JSP页面以后,可以用jsp轻松实现数据的显示,及交互等。
  • jsp支持非常强大的功能,包括能写Java代码。
    • 但是我们现在的情况是,SpringBoot首先是以jar包的方式,不是war
    • 第二,我们用的是内嵌的Tomcat容器,它现在默认是不支持jsp的。
  • 那不支持jsp,如果直接用纯静态页面的方式,那给开发会带来非常大的麻烦,那怎么办呢?
  • 注意:一体式的开发才会用到thymeleaf
    • 在前后端分离的项目中,其实还是用vue,react

SpringBoot推荐你可以来使用模板引擎:

  • 模板引擎,其实大家听到很多,其实jsp就是一个模板引擎,还有用的比较多的freemarker,包括SpringBoot给我们推荐的Thymeleaf,模板引擎有非常多,但再多的模板引擎,他们的思想都是一样的
  • 模板引擎的作用就是我们来写一个页面模板,比如其中有些值是动态的,就要写一些表达式。
    • 而这些值从哪里来,是从后台封装的一些数据,然后把这个模板和这个数据交给模板引擎,模板引擎按照我们的这个数据把这表达式解析,填充到指定的位置,然后把这个数据最终生成一个我们想要的内容给我们写进去,这就是我们的模板引擎。
  • 只不过呢,就是说不同模板引擎之间,他们可能这个语法有点不一样。
阅读更多...

SpringBoot-06-Web开发静态资源处理

SpringBoot-06-Web开发静态资源处理

1. 简介

使用SpringBoot的步骤:

1、创建一个SpringBoot应用,选择我们需要的模块,SpringBoot就会默认将我们的需要的模块自动配置好

2、手动在配置文件中配置部分配置项目就可以运行起来了

3、专注编写业务代码,不需要考虑以前那样一大堆的配置了。

要熟悉掌握开发,之前学习的自动配置的原理一定要搞明白!

  • 比如SpringBoot到底帮我们配置了什么?我们能不能修改?我们能修改哪些配置?我们能不能扩展?

  • 向容器中自动配置组件 :xxxAutoconfiguration

  • 自动配置类,封装配置文件的内容:xxxProperties

提醒:

  • 没事就找找类,看看源码,理解自动装配原理!
阅读更多...

SpringBoot-05-自动配置原理

SpringBoot-05-自动配置原理

本篇解决以下问题

  • 配置文件到底能写什么?怎么写?

    • spring.factories 和 配置文件之间的联系
      • 不卖关子:所有yaml可以配置的东西都在xxxProperties里有
      • xxxProperties.java文件在spring.factories存在
      • 同时每一个xxxProperties.java 对应着一个xxxAutoConfiguration.java
    • 本质:yaml中能配置的属性都是xxxProperties类中所有的属性
  • SpringBoot官方文档中有大量的配置,我们无法全部记住

  • 网站 : https://docs.spring.io/spring-boot/docs/2.2.6.RELEASE/reference/html/using-spring-boot.html

阅读更多...

JDK1.8源码-00-深拷贝浅拷贝

JDK1.8源码-00-深拷贝浅拷贝

关于Java的深拷贝和浅拷贝,简单来说就是创建一个和一直对象一模一样的对象。

可能日常编码过程中用的不多,但是这是一个面试经常会问的问题,而且了解深拷贝和浅拷贝的原理,对于Java中的所谓值传递或者引用传递将会有更深的理解。

阅读更多...

SpringBoot-04-JSR303校验和多环境切换

SpringBoot-04-JSR 303校验和多环境切换

1. JSR-303校验

1.1 简单使用

  • Springboot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。
  • 这里来写个注解让我们的name只能支持Email格式;
1
2
3
4
5
6
7
@Component //注册bean
@ConfigurationProperties(prefix = "person")
@Validated //数据校验
public class Person {
@Email(message="邮箱格式错误") //name必须是邮箱格式
private String name;
}

使用数据校验,可以保证数据的正确性;

阅读更多...
  • © 2019-2022 Zhuuu
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信