- 博客(281)
- 收藏
- 关注
原创 Spring Boot(24)——使用Freemarker视图
使用Freemarker视图Spring Boot默认对Freemarker也有支持,需哟使用Freemarker的第一步是加入Freemarker的依赖。<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId>...
2019-06-17 19:33:22 2210
原创 Spring Boot(23)——使用Jsp视图
使用Jsp视图使用内置的Tomcat容器时如果需要使用Jsp视图,需要在pom.xml中添加如下依赖。<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <...
2019-06-17 19:29:07 1016
原创 Spring Boot(22)——Maven Filter问题
Maven filter问题我们可以在项目的pom.xml文件中添加如下内容,其会把src/main/resources目录下的所有文件都当做咨询文件,此外通过<filtering>true</filtering>指定了这些资源文件将经过过滤。过滤的时候可以使用pom.xml中定义的properties或project相关信息等。<build> &l...
2019-06-15 22:59:45 1629
原创 Spring Boot(21)——监控和管理接口
Spring Boot提供的监控和管理接口Spring Boot提供了收集一些系统信息和对系统进行管理的功能,并会把它们以JMX或Http的方式发布出来,用户可以把它们集成到自己的监控系统。需要使用这些功能时需要添加如下依赖。<dependency> <groupId>org.springframework.boot</groupId> &l...
2019-06-15 22:58:01 3631
原创 Spring Boot(20)——devtools介绍
Spring Boot devtools介绍Spring Boot提供了一个spring-boot-devtools jar包,提供了一些方便程序开发的功能,主要是监控程序的变化,然后进行自动重新启动。使用spring-boot-devtools需要在pom.xml中添加如下依赖项,同时需要设置<optional>true</optional>。spring-boot-d...
2019-06-15 22:49:56 11752
原创 Spring Boot(19)——使用Mybatis
使用MybatisMybatis官方提供了整合Spring Boot的Starter,需要在Spring Boot应用中使用Mybatis,需要在pom.xml中添加如下依赖,当前最新的版本是1.3.2。<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId...
2019-06-15 22:47:10 1081
原创 Spring Boot(18)——使用Alibaba Druid DataSource
使用Alibaba Druid DataSourceDruidDataSource是Alibaba开源的一个数据库连接池,其GitHub地址是https://github.com/alibaba/druid。需要在Spring Boot应用中使用DruidDataSource,可以在pom.xml中加入如下依赖。1.1.10版本是目前最新的一个版本。<dependency> ...
2019-06-10 19:19:12 8177
原创 Spring Boot(17)——使用Spring Data JPA
使用Spring Data JPA使用Spring Data JPA需要在pom.xml中添加spring-boot-starter-data-jpa依赖。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter...
2019-06-10 19:17:16 884
原创 Spring Boot(16)——使用DataSource
使用DataSource需要使用DataSource可以在pom.xml中添加spring-boot-starter-jdbc依赖,这会自动加入Spring Jdbc的依赖。还需要加入相应的JDBC驱动包的依赖,笔者这里使用的是MySQL的驱动。<dependency> <groupId>org.springframework.boot</groupId&...
2019-05-18 21:39:18 3186 2
原创 Spring Boot(15)——自动配置Validation
自动配置Validation当应用中的Classpath下存在javax.validation的实现时,Spring Boot的org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration将会自动配置用于validate的LocalValidatorFactoryBean,前提是在用户没有自己定义jav...
2019-05-18 21:37:34 5004 3
原创 Spring(34)——Spring Retry介绍
Spring Retry介绍Spring retry是Spring提供的一种重试机制的解决方案。它内部抽象了一个RetryOperations接口,其定义如下。public interface RetryOperations { <T, E extends Throwable> T execute(RetryCallback<T, E> retryCallback...
2019-05-18 21:34:26 4391 2
原创 Spring Boot(14)——使用WebClient
使用WebClientWebClient是Spring WebFlux模块提供的一个非阻塞的基于响应式编程的进行Http请求的客户端工具,从Spring5.0开始提供。Spring Boot应用中添加如下依赖将自动添加Spring WebFlux依赖,从而可以使用WebClient。<dependency> <groupId>org.springframewor...
2019-05-15 20:32:41 1299
原创 Spring Boot(13)——使用RestTemplate
使用RestTemplateRestTemplate是Spring Web模块提供的作为客户端按照Rest规范进行Http请求的工具。Spring Boot也提供了对它的自动配置,Spring Boot不是直接的配置好RestTemplate对象,而是由org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfig...
2019-05-15 20:30:57 941
原创 Spring Boot(12)——使用MongoDB
使用MongoDB需要在Spring Boot应用中使用MongoDB,可以在pom.xml中添加spring-boot-starter-data-mongodb依赖,这样Spring Boot会自动配置MongoDB的相关bean,比如MongoClient、MongoTemplate等,可以参考Spring Data MongoDB的自动配置类org.springframework.boot...
2019-05-15 20:29:15 1005
原创 Spring Boot(11)——使用Spring Cache
使用Spring CacheSpring提供了Cache抽象,它允许我们声明哪些bean的哪些方法的外部调用需要使用Cache。方法调用使用了Cache后,在调用真实方法前会先从缓存中获取结果,缓存中如果没有则会调用真实方法,这也是基于AOP实现的。关于Spring Cache的介绍不是本文的重点,如有需要可以参考笔者写的http://elim.iteye.com/blog/2123030。在...
2019-05-13 20:23:07 515
原创 Spring Boot(10)——使用Redis
使用RedisSpring Boot提供了spring-boot-starter-data-redis这样一个Starter,通过加入这样一个依赖,会自动配置RedisConnectionFactory,默认是基于Lettuce的实现。然后会基于RedisConnectionFactory自动配置RedisTemplate和基于String操作的StringRedisTemplate。<...
2019-05-13 20:21:28 845 1
原创 Spring Boot(09)——使用SpringMVC
使用SpringMVC使用SpringMVC最简单的方法是在pom.xml中加入spring-boot-starter-web依赖,这样Spring Boot的AutoConfiguration模块将为我们自动进行SpringMVC的配置,创建好RequestMappingHandlerAdapter、RequestMappingHandlerMapping等,详情可以参考org.springf...
2019-05-12 22:57:55 544
原创 Spring Boot(08)——日志输出
日志输出使用了spring-boot-starter后,将添加spring-boot-starter-logging依赖,此时Spring Boot将使用logback进行日志输出,默认只会输出INFO级别以上的日志信息,且只会输出到控制台。默认的日志格式是如下这样的。前面是日志输出时间,INFO是日志级别,7496是进程号,[ost-startStop-1]是用[]包起来的线程名,o.s.we...
2019-05-12 22:55:56 505
原创 Spring Boot(07)——ConfigurationProperties介绍
ConfigurationProperties介绍ConfigurationProperties是一个注解,可以标注在一个Class上,这样Spring Boot会从Environment中获取其属性对应的属性值给其进行注入。比如下面的代码定义中,Spring Boot在实例化TestConfigurationProperties这个bean时就会把从Environment中获取属性名为appN...
2019-05-06 20:01:10 1508
原创 Spring Boot(06)——参数配置机制
参数配置机制Spring Boot默认会读取Classpath根路径下的application.properties文件和application.yml文件作为配置文件(使用properties文件还是yaml文件就看个人的喜好了,就笔者而言,yaml文件结构更好,看起来更加的直观),并把它们封装到Environment对象。在应用中通过注入Enviroment对象就可以获取到applicati...
2019-05-06 19:59:17 443 1
原创 Spring Boot(05)——SpringApplication介绍
SpringApplication介绍通常启动Spring Boot应用时调用SpringApplication类的static run()进行启动。@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.r...
2019-04-25 15:40:20 441
原创 Spring Boot(04)——创建自己的自动配置
创建自己的自动配置当你的应用需要以jar包的形式提供给其它应用使用时,可以考虑把它们封装为一个Spring Boot Starter。即该jar包是可以自动添加需要引用的依赖项,也能够对核心功能进行自动配置。自动配置的核心类是一个标注了@Configuration的类,然后在自动配置类中可以定义相应的bean。比如下面的配置类中定义了一个HelloBean类型的bean。@Configurat...
2019-04-22 20:07:57 704
原创 Spring Boot(03)——自动配置
Spring Boot 自动配置Spring Boot的自动配置功能会根据Classpath中的Class为我们自动创建相应的bean。比如当classpath下存在MongoClient.class和MongoTemplate.class时就会进行Spring Data MongoDB的配置。这是通过MongoDataAutoConfiguration类配置的。下面是MongoDataAuto...
2019-04-22 20:06:20 516
原创 Spring Boot(02)——Maven插件支持
Spring Boot Maven插件Spring Boot提供了一个Maven插件,在指定了spring-boot-starter-parent为项目的parent后,在项目中可以进行如下定义来配置Spring Boot的Maven插件。该plugin主要提供了两个goal,run和repackage,run用来运行当前Spring Boot工程,repackage则用来将项目重新打包。&l...
2019-04-22 20:02:55 452
原创 Spring Boot(01)——初体验
Spring Boot初体验Spring Boot的理念是抛弃XML配置(当然,如果你想采用XML配置也是可以的,但是Spring Boot推荐使用基于Java的配置),采用纯Java配置和properties或yml文件配置,通过提供一系列的Starter可以使开发者快速的搭建起一套开发环境。Starter将某一工具相关的依赖整合到了一起,通过依赖一个Starter会间接的依赖该Starter...
2019-04-18 19:52:36 714 2
原创 通过Java类配置SpringMVC
SpringMVC配置以Java类配置如果在使用SpringMVC时不希望采用XML的配置方式,而采用基于Java类的配置也是可以的。如果还希望在web.xml中配置DispatcherServlet,则需要通过init-param指定contextClass为AnnotationConfigWebApplicationContext,然后把contextConfigLocation指定为Spr...
2019-04-17 20:45:00 1051
原创 SpringMVC对异步请求的支持
SpringMVC对Servlet3异步请求的支持SpringMVC对Servlet3异步请求的支持有两种方式,分别是通过处理器方法返回Callable和DeferredResult。按照Servlet3的规范,支持异步请求时需要配置对应的Servlet和Filter支持异步请求,为了使SpringMVC支持异步请求的处理,需要在定义DispatcherServlet时配置其支持异步请求,在Di...
2019-04-17 20:42:34 1181
原创 SpringMVC指定静态资源路径
指定静态资源路径当SpringMVC的DispatcherServlet配置的映射路径是/时,所有的请求都将被SpringMVC拦截,如果我们想访问某个路径下的静态资源其实是不能直接访问的。基于这种情况,SpringMVC提供了<mvc:resources/>配置来告诉SpringMVC,哪些请求是针对静态资源的。它需要指定两个参数,location用来指定静态资源对应的实际路径,可...
2019-04-17 20:35:20 5492
原创 SpringMVC直接指定路径对应的视图名称
直接指定路径对应的视图名称在使用SpringMVC开发Web应用时会存在一些没有业务逻辑,只需要直接展示对应的页面的请求。对于这些请求我们可以不定义Controller处理方法,直接建立请求路径和视图的对应关系。在使用基于XML的SpringMVC配置时可以通过mvc namespace提供的view-controller来指定请求路径和视图的对应关系。下面的代码中就指定了当请求路径是/时将直接...
2019-04-17 20:33:30 1179
原创 SpringMVC之通过程序定义DispatcherServlet
通过程序定义DispatcherServlet以往我们在使用SpringMVC的时候都需要在web.xml中定义一个DispatcherServlet。基于Servlet3编程时我们也可以通过程序来注册DispatcherServlet,Servlet3的ServletContainerInitializer允许我们在容器启动的时候通过程序注册一些Servlet对象,Spring提供了一个实现,...
2019-04-17 20:31:37 450
原创 SpringMVC之ResponseStatus
SpringMVC之ResponseStatusResponseStatus是由SpringMVC提供的一个注解,可以标注在异常处理方法上,也可以标注在异常类上,用来指定在SpringMVC处理请求的过程中抛出了指定的异常时将响应给客户端的状态码和错误信息。比如我们希望在抛出了IllegalArgumentException时响应给客户端的状态码是502,错误信息是Hello Error,我们就...
2019-03-11 20:01:50 1352
原创 SpringMVC异常处理之ResponseEntityExceptionHandler
SpringMVC异常处理之ResponseEntityExceptionHandlerResponseEntityExceptionHandler中包装了各种SpringMVC在处理请求时可能抛出的异常的处理,处理结果都是封装成一个ResponseEntity对象。通过ResponseEntity我们可以指定需要响应的状态码、header和body等信息,响应的body会被HttpMessag...
2019-03-11 19:58:52 12382
原创 SpringMVC之ControllerAdvice
SpringMVC之ControllerAdviceSpringMVC从3.2版本开始提供了一个org.springframework.web.bind.annotation.ControllerAdvice注解,使用它标注的Class在启用了注解的支持时,在进行Class扫描时能够自动扫描到它,因为它上面使用了org.springframework.stereotype.Component注解...
2019-03-11 19:56:37 1654
原创 SpringMVC文件上传对Servlet3的支持
SpringMVC内置了对文件上传的支持,它需要我们配置一个MultipartResolver,Servlet3之前它只有一个基于commons-fileupload的实现CommonsMultipartResolver,笔者以前也写过一篇基于CommonsMultipartResolver的文件上传的博文,地址是http://elim.iteye.com/blog/1188116。Servlet...
2019-03-11 19:54:34 359
原创 SpringMVC之Theme选择
theme选择一组主题通常是一组CSS和图片的组合,比如网址导航网站常见的以颜色区分的主题。SpringMVC提供了对主题的支持,由org.springframework.ui.context.Theme表示。Theme由ThemeResource来根据theme名称来解析出来,它的定义如下。public interface ThemeSource { Theme getTheme(Str...
2019-03-11 19:52:59 748
原创 SpringMVC传递参数到重定向后的页面
RedirectAttributes传递参数到重定向后的页面Servlet容器在页面跳转时有两种方式,forward和redirect的,其中forward时应用的是在服务端的跳转,应用的是同一个request。而redirect是服务端通过响应301和对应的新地址告诉浏览器让浏览器重新请求新的地址。第一次请求和第二次请求使用的不是同一个request的。所以这种情况下,不能直接通过reques...
2019-03-11 19:50:58 1071
原创 SpringMVC之RequestContextUtils工具类
RequestContextUtils类RequestContextUtils类是Spring提供的用于从HttpServletRequest上下文中获取特殊对象的工具类。该工具类虽然是属于Spring的一部分,但是如果在应用中我们有需要直接获取相关信息的需求,我们也可以直接使用。从request中获取WebApplicationContext。RequestContextUtils.get...
2019-03-07 11:46:16 4120
原创 SpringMVC的DispatcherServlet的默认策略
SpringMVC的DispatcherServlet的默认策略在使用SpringMVC的时候,我们知道需要HandlerMapping定义请求路径与处理器之间的映射,需要HandlerAdapter来调用处理器方法并返回一个ModelAndView对象,需要ViewResolver来解析视图。这些是SpringMVC中最基本的接口。通常我们都需要在SpringMVC的配置文件中定义好需要使用的...
2019-03-07 11:44:05 634
原创 SpringMVC路径匹配中使用通配符
SpringMVC路径匹配中使用通配符@RequestMapping中指定的路径也可以使用通配符*,表示任意字符。如下的处理器方法可以映射请求/antstyle/a,可以映射请求/antstyle/b,但是它不能映射请求请求/antstyle/a/b,因为它只能映射一级路径。@RequestMapping("/antstyle/*")public Object testAntStyle() ...
2019-03-07 11:42:05 8266 1
原创 Spring(33)——ImportBeanDefinitionRegistrar介绍
ImportBeanDefinitionRegistrar介绍在上一篇博文http://elim.iteye.com/blog/2428994中介绍了ImportSelector的作用及其用法。本文需要介绍的ImportBeanDefinitionRegistrar的用法和作用跟ImportSelector类似。唯一的不同点是ImportBeanDefinitionRegistrar的接口方法v...
2019-03-04 18:50:57 2363 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人