
spring
文章平均质量分 81
乐百川
这个作者很懒,什么都没留下…
展开
-
Spring学习笔记 搭建环境
现在开始我们就要开始学习Spring框架了。首先要做的事情就是搭建Spring环境,为了让我们关注于Spring的功能,我在这里使用Spring Initializer,它会自动为我们创建一个包含了Spring依赖的项目,让我们能直接快速开始。打开IDEA或者STS,点击新项目,然后选择Spring Initializer,或者登陆Spring Initializer网站在线生成也可以。如果使用在线原创 2017-01-14 19:46:11 · 453 阅读 · 0 评论 -
Spring学习笔记 Spring项目介绍
Spring项目在Java语言中起到了重要的作用,只要是学习过Java语言的人一定听说过Spring的大名。Spring不是一个单一的框架,而是一个功能各异,又互相补充的框架家族。下面来针对Spring下主要的一些项目进行一下简单介绍。Spring IO Plaform我们在构建项目的时候,需要导入不同的依赖项。但是有时候不同版本对于依赖之间可能会出现不兼容的情况。Spring IO Plaform原创 2017-01-11 20:51:31 · 3935 阅读 · 0 评论 -
Spring学习笔记 事务管理
事务简介所谓事务,指的是程序中可运行的不可分割的最小单位。在生活中事务也是随处可见的。比方说你在Steam上剁手买了一款游戏,那么付款就是一个事务,要么付款成功,游戏到手;要么付款失败,钱退回你账户。不可能也绝不应该出现花了钱游戏却没到的情况。所以,事务也应该具有两个操作:成功时候提交,或者失败时候回滚。许多框架也提供事务管理功能。JDBC中,你可以关闭自动提交,然后使用Connection.com原创 2017-01-31 20:48:56 · 1171 阅读 · 0 评论 -
深入理解Spring AOP代理
一开始我对Spring AOP还是属于一知半解的状态,这几天遇到一个问题,加上又查看了一些Spring相关知识,感觉对这个问题有了更深刻的认识。所以写下来分享一下。我们知道,Spring支持多种AOP方式,Spring自己的基于代理的AOP和AspectJ的基于编织(weaving)的AOP。如果一个类实现了一个或多个接口,那么Spring就会使用默认的JDK动态代理,如果没有实现任何接口,就会使用原创 2017-01-31 22:03:02 · 490 阅读 · 0 评论 -
Spring Web MVC框架(十一) Spring Web MVC测试框架
Spring 也提供了完善的测试框架,我们可以方便的测试Spring Web MVC应用程序。为了使用这个测试框架,我们需要添加它的依赖项。compile group: 'org.springframework', name: 'spring-test', version: '4.3.6.RELEASE'服务端测试我们可以利用Spring提供的Mock对象来测试我们Spring程序的服务端行为。通过原创 2017-02-15 14:14:47 · 704 阅读 · 0 评论 -
Spring Boot 框架介绍和使用
本文参考自Spring Boot文档。Spring Boot 简介Spring框架功能很强大,但是就算是一个很简单的项目,我们也要配置很多东西。因此就有了Spring Boot框架,它的作用很简单,就是帮我们自动配置。Spring Boot框架的核心就是自动配置,只要存在相应的jar包,Spring就帮我们自动配置。如果默认配置不能满足需求,我们还可以替换掉自动配置类,使用我们自己的配置。另外,Sp原创 2017-03-17 23:33:04 · 32647 阅读 · 1 评论 -
做一个Spring Boot小例子
在我的《Spring Boot 框架介绍和使用》里介绍了Spring Boot,但是没有例子。所以这一篇的主要内容就是来做一个小例子。结合我上面那篇一起看效果更佳。运行项目创建项目和上篇文章一样,我用了2.0的快照版本的Spring Boot,因为现版本1.5的Thymeleaf还是2.1的版本,比较旧。在Idea中运行Spring Boot项目不如Spring Tool Suite简单,因为在ST原创 2017-03-20 01:51:27 · 2907 阅读 · 0 评论 -
Spring EL 简介
本文参考自Spring官方文档 Spring EL。在Java上有很多表达式语言,在很多领域有各种各样的应用。我们应该很熟悉Java EE的表达式语言吧,让我们能在JSP中随意插入数据。Spring也提供了一个表达式语言并添加了自己的功能,以便可以方便的和各种Spring框架交互。我们在项目中不需要手动管理Spring表达式的这些接口和实例,只需要在合适的时候编写Spring表达式,转换器就会自动解原创 2017-03-10 00:19:03 · 4192 阅读 · 0 评论 -
Spring Data JPA 介绍和使用
本文参考了Spring Data JPA官方文档,引用了部分文档的代码。Spring Data JPA是Spring基于Hibernate开发的一个JPA框架。如果用过Hibernate或者MyBatis的话,就会知道对象关系映射(ORM)框架有多么方便。但是Spring Data JPA框架功能更进一步,为我们做了 一个数据持久层框架几乎能做的任何事情。下面来逐步介绍它的强大功能。添加依赖我们可以原创 2017-03-11 21:50:35 · 28554 阅读 · 0 评论 -
玩一玩微信公众号开发(一) 接入系统
一开始我准备学一学微信开发。后来看了一下文档,需要自己搭服务器进行接口对调。有点麻烦所以就没继续学下去。现在学习过了Kotlin、Spring Boot很多东西,感觉可以比较方便的进行开发了。今天就来回过头学习一下。准备工作申请公众号首先说明一下,有两个微信相关平台,微信公众平台和微信开放平台。公众平台是我们运营微信号的主要地方,我们要想申请订阅号、公众号等都需要到这个平台进行申请。微信开放平台则是原创 2017-03-23 20:46:06 · 5974 阅读 · 8 评论 -
Spring 定时任务
本文参考自Spring官方文档 34. Task Execution and Scheduling。在程序中常常有定时任务的需求,例如每隔一周生成一次报表、每个月月末清空用户积分等等。Spring也提供了相应的支持,我们可以非常方便的按时执行任务。项目准备这里我使用Gradle来建立项目,然后在build.gradle中添加下面一行。springVersion的值是目前最新的Spring版本'4.3原创 2017-03-15 21:55:58 · 1589 阅读 · 0 评论 -
玩一玩微信公众号开发(二) 管理凭据和自定义菜单
管理access_tokenaccess_token介绍在前面我们成功的使用了Spring Boot Web程序和微信对接。但是这仅仅是一个开始,我们还需要获取access_token,也就是凭据,才能进行之后的工作。微信开发文档有如下介绍。 access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_toke原创 2017-03-26 18:01:20 · 1001 阅读 · 0 评论 -
使用MyJRebel获取免费的JRebel授权
在我们开发Java Web程序的时候,调试就是一个麻烦事情,每次更改类, 就需要重启服务器。对于Tomcat这样的小巧服务器来说,重启就重启吧,反正也就是几秒钟的事情。如果使用的是完整的Java EE标准服务器(GlassFish这种),重启的时候需要重启很多服务,会浪费大量时间。所以就有了JRebel这个强大的东西。它是一个插件,支持现在大部分的开发框架,例如Spring、Maven、Struts原创 2017-04-16 02:05:13 · 10413 阅读 · 12 评论 -
Spring学习笔记 Spring Roo 简介
一直以来,Java/Spring开发被认为是笨重的代表,无法快速生成项目原型和骨架。所以,Spring推出了Spring Roo这个项目,帮助我们快速生成项目原型。本文参考自Spring Roo的官方文档,如果熟悉英文的话可以直接看原文档,内容更加丰富。 安装安装命令行工具Spring Roo是一套命令行工具,如果你使用的是Eclipse/STS,还可以使用Eclipse对应的插件。首先先来下载命令原创 2017-07-24 00:34:35 · 6354 阅读 · 0 评论 -
Spring IO Platform 简介
Spring IO Platform框架简单来说就是一个版本号兼容系统,它将常用第三方类库的兼容的版本组织起来。只要我们在项目中引用了Spring IO Platform,就不需要为这些第三方类库设置版本号了,Spring IO Platform会自动帮我们设置所有兼容的版本号。本文参考自官方文档,如果需要查阅详细信息,请直接看原文即可。引入类库使用Maven使用Maven的话,在pom.xml中修原创 2017-08-26 18:35:01 · 2025 阅读 · 0 评论 -
Spring学习笔记 AOP
AOP,也就是面向方面编程或者说面向面编程,是一种很重要的思想。在企业级系统中经常需要打印日志、事务管理这样针对某一方面的需求,但是传统的面向对象编程无法很好的满足这些需求。因此催生了面向切面编程这样的思想。面向切面编程,通过动态代理这样的功能,向要执行的方法添加钩子,能够在不改动原方法的情况下,动态添加新功能。所以在现代系统中算是一项必需的功能了。Spring框架也很好的支持了AOP。AOP的几个原创 2017-01-26 01:45:12 · 670 阅读 · 0 评论 -
Spring学习笔记 Spring JDBC框架
Spring JDBC简介先来看看一个JDBC的例子。我们可以看到为了执行一条SQL语句,我们需要创建连接,创建语句对象,然后执行SQL,然后操纵结果集获取数据。try(Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD)){ List<User> users = new ArrayList<原创 2017-01-29 03:09:37 · 4032 阅读 · 0 评论 -
Spring Web MVC框架(一) 搭建环境
学过Java的都知道SSH,也就是Struts、Spring和Hibernate。其中Struts是一个Web MVC框架,Hibernate是ORM框架,Spring是一组框架。不过由于Struts设计较早,其中有些设计已经过时了,框架漏洞也比较多。而且Struts的编写也不方便(例如控制器必须继承Controller类),所以现在Struts用的比较少了。现在更加常用的Web MVC框架是Spr原创 2017-02-04 00:37:12 · 6902 阅读 · 0 评论 -
Spring Web MVC框架(三) 异步处理
前面介绍的处理方法都是同步的,意味着所有操作都在一个线程中完成。有时候处理流程可能很长,可能需要长时间的IO,这时候同步处理方法会白白占用处理器资源。这样就需要异步处理方法。启用异步请求要启用异步处理功能,我们要打开DispatcherServlet的异步支持。在web.xml中添加<async-supported>true</async-supported>即可。web.xml最低必须是3.0的。原创 2017-02-07 01:02:44 · 1375 阅读 · 0 评论 -
Spring Web MVC框架(四) 视图和视图解析
视图解析器在Spring中视图相关的两个接口是ViewResolver和View两个接口,ViewResolver用于视图名称和实际视图之间的映射,View接口用于准备和传递数据到实际的视图。下面是一些Spring支持的一些ViewResolver。对于其他视图技术(例如Thymeleaf)可能自己实现视图解析器以便和Spring集成。 视图解析器 功能 AbstractCachingVi原创 2017-02-08 00:08:22 · 3287 阅读 · 0 评论 -
Spring Web MVC框架(十二) 使用Thymeleaf
Thymeleaf简介前面的例子我们使用的视图技术主要是JSP。JSP的优点是它是Java EE容器的一部分,几乎所有Java EE服务器都支持JSP。缺点就是它在视图表现方面的功能很少,假如我们想迭代一个数组之类的,只能使用<% %>来包括Java语句进行。虽然有标准标签库(JSTL)的补足,但是使用仍然不太方便。另外JSP只能在Java EE容器中使用,如果我们希望渲染电子邮件之类的,JSP就无原创 2017-02-16 16:48:55 · 17670 阅读 · 2 评论 -
Spring Web MVC和Hibernate的集成
网上看到很多关于Spring与Hibernate的集成的文章,奈何由于那些文章写作时间较早,很多都是Spring 3 和Hibernate 4等较旧的版本。所以我在这里使用更新的版本来说明一下。添加项目依赖首先我们需要一个Java Web项目,最好使用Maven或Gradle构建工具,方便我们解决软件依赖。我在这里使用Gradle构建工具,构建脚本如下。我们只要引入spring-webmvc和spr原创 2017-02-08 18:29:05 · 472 阅读 · 0 评论 -
Spring Web MVC框架(五) 文件上传
Spring同样支持文件上传功能,不过该功能默认未开启,因为可能有些开发者可能希望自己处理文件上传过程。Spring的文件上传功能在org.springframework.web.multipart包下,有两个MultipartResolver实现用来支持文件上传功能,一个是基于Commons FileUpload ,另一个基于Servlet 3.0 multipart请求解析功能。这两个Multi原创 2017-02-08 22:22:09 · 567 阅读 · 1 评论 -
Spring Web MVC框架(六) 异常处理
Spring Web MVC对异常处理有着完善的支持,我们可以捕获控制器中抛出的任何异常,然后按照异常类型将异常信息映射到某个视图文件,向用户显示对应的信息。@ExceptionHandler最简单的办法就是使用@ExceptionHandler注解。它可以定义到一个控制器中,处理该控制器抛出的异常。@ExceptionHandler注解接受一个Class,指定捕获哪个异常。如果不指定这个值,则捕获原创 2017-02-08 23:40:39 · 766 阅读 · 1 评论 -
Spring Web MVC框架(七) 基于代码的容器初始化
前面我们的Spring项目都是使用XML文件配置的,包括web.xml和Spring配置文件。Spring还支持基于代码的配置,这样我们的Spring程序就可以脱离web.xml文件,全部使用代码来配置。WebApplicationInitializer接口第一个接口就是org.springframework.web.WebApplicationInitializer,我们实现该接口,然后在onSt原创 2017-02-09 17:57:15 · 577 阅读 · 1 评论 -
Spring 对象XML映射
OXM简介我们都知道对象关系映射(ORM),用来将Java对象和关系型数据库的数据进行映射。Spring也提供了一套类似的映射机制,用来将Java对象和XML文件进行映射。这就是Spring的对象XML映射功能,有时候也成为XML的序列化和反序列化。这套功能的最基本的两个接口就是org.springframework.oxm.Marshaller和org.springframework.oxm.Un原创 2017-02-10 21:17:25 · 5566 阅读 · 1 评论 -
Spring Web MVC框架(八) 配置Spring Web MVC
这一篇文章对应于Spring参考文档 Configuring Spring MVC,讲的是Spring Web MVC各部分的配置方法,包括Java代码配置和XML文件配置以及MVC命名空间的使用方法。启用MVC Java配置和XML命名空间默认配置要启用MVC Java配置(@Controller等各种注解)和XML命名空间,如果使用的是Java配置,在配置类上再添加@EnableWebMvc注解原创 2017-02-10 00:26:41 · 4692 阅读 · 1 评论 -
Spring Web MVC框架(二) 控制器
在前面我们搭建了基本的Spring Web MVC环境,并配置了一个控制器。下面我们来详细学习一下控制器。控制器的主要作用就是处理特定URL发过来的HTTP请求,然后进行业务逻辑处理,将结果返回给某个特定的视图。处理请求我们在前面定义了如下一个控制器。在Spring中定义控制器非常简单,新建一个类然后应用@Controller注解即可,当然一般习惯上将控制器类也命名为XXController。每个控原创 2017-02-06 19:24:20 · 517 阅读 · 0 评论 -
Spring Web MVC框架(九) XML和JSON视图与内容协商
Spring MVC不仅支持各种网页视图,也支持JSON、XML这样的视图。而且还支持内容协商,也就是根据传入的扩展名、请求参数、Accept Header等信息决定具体采用哪种视图。我们先来看看Spring的JSON和XML视图。手动实现JSON或XML视图这是最笨的办法,不过描述起来很简单。我们只要按照自己习惯的方式使用自己熟悉的类库,在控制器中手动将要转换的对象转化成JSON或XML字符串,然原创 2017-02-14 02:46:14 · 786 阅读 · 0 评论 -
Spring学习笔记 依赖注入
依赖注入简介依赖注入是一个很常用的词。Java新手常会写出如下的代码,直接在写一个类的时候让它自己初始化自己。但是这不是一个好办法。一个类的状态应该由创建它的类决定,不能由自己决定自己。因此更好的办法是交给构造方法来初始化。public class User { private long id; private String username; private String原创 2017-01-15 00:52:00 · 2979 阅读 · 1 评论 -
Spring Web MVC框架(十) HTTP缓存
Spring的缓存控制类合理利用HTTP缓存,可以提高应用程序的性能。Spring当然也对HTTP缓存提供了支持。HTTP缓存最基础的类就是org.springframework.http.CacheControl,我们可以使用该类提供的各种工厂方法来得到一个CacheControl对象,然后将它添加到各种方法中。常用的工厂方法有maxAge、cachePublic、noTransform等等。它们原创 2017-02-14 21:45:36 · 3135 阅读 · 0 评论 -
创建一个基于Spring IO Platform的多模块Gradle项目
最近有同学问我,能不能让我弄一个基于Spring-Platform的多模块Gradle项目的例子,最近终于试着弄了一下,所以写篇文章介绍一下。首先介绍一下Spring IO Platform,它主要为了帮助我们管理项目中庞大的类库的版本。做过项目的同学都肯定被大量类库的版本号所困扰,如果要进行项目升级的话一堆类库要不要进行升级,升级会不会出现不兼容情况?如果使用Spring IO Platfo...原创 2018-09-15 21:21:24 · 1282 阅读 · 0 评论