文章是新一代的技术博客,你不仅可以看到开发分享高质量的内容,而且能够在线浏览源码和查看运行效果。

将JSP/Servlet项目转换为Spring Boot项目

创建Spring Boot应用 在基于Spring来重构JSP应用之前,我们先引入Spring Boot,使之成为一个Spring Boot应用。你只需要在原来的代码基础上,增加简单的配置和少量的代码即可引入Spring Boot,整个过程5分钟就能完成。 这里我们使用 Maven 来管理依赖,因为我们需要增加Spring Boot相关的依赖。也可以在Eclipse或者IntelliJ中创建一个新的Maven项目。 在POM文件中加入Spring Boot相关的配置。 <parent>...

微信公众号开发:弹幕应用中接收消息

微信公众号大家都很熟悉了,当你拥有了微信公众号之后,你可以在 微信公众平台 中对你的公众号进行管理。 微信公众平台 为我们提供了很强大的管理功能,包括群发消息、自动回复、自定义菜单等等。但是,需求是多种多样的, 微信公众平台 中的功能必然不能满足所有的用户需求。今天,我们就来学习一下如何利用微信的开放接口来实现一个微信弹幕的简单后台。 申请微信公众号 第一步,我们首先得拥有一个微信公众号,进入 微信公众平台 ,点击右上角【立即注册】进入注册页面: 按要求填写基本信息,激活邮箱、验证个人信息等等操作后,注册成功。此时,作为一个最简单的公众号,微信已经给我们了很多相应的权限,在【接口权限】页面中我...

通过Spring Boot三分钟创建Spring Web项目

Spring Boot简介 接下来我们所有的Spring代码实例将会基于 Spring Boot ,因此我们先来了解一下Spring Boot这个大杀器。 Spring早期使用XML配置的方式来配置Spring Beans之间的关系,比如AOP和依赖注入的配置。随着功能以及业务逻辑的日益复杂,应用便会伴随大量的XML配置文件以及复杂的Bean依赖关系。随着Spring 3.0的发布,Spring团队逐渐开始摆脱XML配置文件,并且在开发过程中大量使用“约定优先配置”(convention over configuration)的思想来摆脱Spring框架中各类纷繁复杂的配置。Spring就是在...

SpringBoot与JUnit+Mockito 单元测试

JUnit和Mockito 对于JUnit,这里就不详细介绍了,网上的教程有很多,比如 这个 和 这个 。 下面主要介绍一下 Mockito 。 什么是mock测试,什么是mock对象? 先来看看下面这个示例: 从上图可以看出如果我们要对A进行测试,那么就要先把整个依赖树构建出来,也就是BCDE的实例。 一种替代方案就是使用mocks 从图中可以清晰的看出: mock对象就是在调试期间用来作为真实对象的替代品 mock测试就是在测试过程中,对那些不容易构建的对象用一个虚拟对象来代替测试的方法就叫mock测试 模拟的好处是什么? 提前创建测试; TDD(测试驱动开发)    如果你创建了一个Mo...

猿帮帮之技术架构

猿帮帮技术架构 应用综述 我们希望打造一款应用,可以帮助非电气信息类专业的女大学生、中老年退休人员等一些缺乏电脑操作基本知识的人群解决一些基本的软件问题。 功能模块设计 猿帮帮一共包含问答、评论/回复、搜索、奖励几大模块,后面会展开讲各个功能模块。 猿帮帮的后台使用的是 Springboot 框架,它是新一代Spring应用的开发框架,它能够快速的进行应用开发,让人忘记传统的繁琐配置,更加专注于业务逻辑。了解 springboot 的详细内容可以参考 Spring Boot——开发新一代Spring应用 和 Spring Boot应用开发 两篇文章。 前端使用的是 AngularJS 框架,它...

敏捷课程总结报告-shakespeare文字游戏引擎组

一、应用介绍 shakespeare是一款文字游戏引擎,面向人群是有剧本制作,游戏开发情结的人们。无需任何编程基础,通过markdown制作故事剧本即可一键生成可以在微信公众号,pc端浏览器和手机浏览器页面上运行的小游戏。 二、系统架构 下图是我们的系统框架图。 有游戏作者,文字游戏云和用户三方。 首先游戏作者本地用markdown语法编写游戏剧本,Engine模块处理后生成json数据包上传至游戏库。服务器应答来自微信公众号或者浏览器网页的请求,进行和游戏玩家的交互。 各部分功能 Engine Engine端负责将作者写的DSL游戏脚本转化为Json格式的游戏,并发送post请求到服务端容器...

基于Spring MVC的 Websocket在线聊天室

每天大家都在使用QQ等即时聊天工具,今天我们就使用Spring框架以及websocket技术在网页端简单的实现一个在线聊天的功能。 关于Spring MVC的知识这里不会详述,请大家参考 Spring MVC实战入门训练 。 添加maven依赖 在线聊天室使需要使用到的技术或者框架包括: maven作为构建工具 spring boot作为后端框架 spring websocket作为即时消息通讯工具 thymeleaf作为模板引擎 angular作为前端框架 因此,我们首先在 pom.xml 中添加上述依赖: <dependencies>...

Spring Boot命令行界面的使用

Spring Boot提供了命令行界面(Command Line Interface, CLI),可以用来运行和测试Spring Boot应用。Spring Boot及其CLI可以在Spring仓库中手动 下载和安装 ,更简单的方式时通过 Groovy环境管理器 (Groovy enVironment Manager,GVM)。 基于CLI可以极速创建一个Web应用。接下来我们看看如何创建一个Spring MVC应用,以及如何支持在前端中使用Thymeleaf模板引擎和jQuery。我们将使用Groovy来创建项目,你会发现,一切简单得醉了! 安装Spring Boot CLI CLI是Spr...

整合Spring Data JPA与Spring MVC:使用@Query标注自定义查询语句

在 使用JPA访问关系型数据库 和 Spring Data Jpa: 分页和排序 两篇文章中我们学会了如何使用Spring Data Jpa 进行简单的查询以及分页等功能,Spring Data Jpa本身所支持的功能已经非常强大了,也能够支持大部分的场景。但是,现实场景永远比想象的要复杂,有时候我们确实需要像Sql语句这样更加强大以及灵活的方式来进行查询。Spring Data Jpa 当然给我们提供了这样的方式,我们可以使用 @Query 标注轻松的使用类似sql查询的功能。今天我们来尝试一下如何使用 @Query 标注来自定义查询吧。 基础对象 Spring Data Jpa所提供的通过...

基于Spring提供支持不同设备的页面

基于Spring来检测访问Web页面的设备是很简单的,在这个 经验 中我们讲到过。通常不同的设备访问我们是通过响应式设计来统一处理各种设备的尺寸的。但是如果希望针对不同的设备,显示不同的内容呢? Spring对于这一点同样提供了很好的支持,来看看如何实现。 准备工作 我们通过一个简单的例子来演示,基于Spring MVC来实现一个简单的HTTP GET请求,访问的地址是: http://localhost:8080/sayHello 如果从桌面浏览器访问这个地址,则返回的页面中显示: Say hello from desktop 如果从手机浏览器访问这个地址:则返回的页面中显示 Say hel...

在Docker容器中运行Spring Boot应用

Spring Boot简化了Spring应用的开发过程,遵循约定优先配置的原则提供了各类开箱即用(out of the box)的框架配置。另一方面,Spring Boot还具备将代码直接构建为可执行jar包的能力,这个jar包是一个可以独立运行的部署单元。基于以上特性,现在普遍认为 Spring Boot 提供了一种快速构造 微服务(Micro Service) 的能力。 Docker与Spring Boot Docker 是一种Linux容器的实现,Linux容器是基于进程的轻量级资源隔离技术,每一个容器对应操作系统中的一个进程,但是它又会有自己的网络空间、文件系统、PID等。Docker...

测试Spring MVC应用

Spring的依赖注入使得我们的代码非常容易进行单元测试—— @Controller , @Service , @Entity 等注解标注的类基本都是POJO(plain old Java object),也就是说很少依赖于Spring容器本身的API。我们可以非常容易地使用 JUnit 或 TestNG 编写测试代码。另一方面,对于三层架构的Spring Web应用(Controller, Service, DAO),使用Mock活Stub方法也能够更好的来测试我们的代码逻辑。例如Service层代码的单元测试中,依赖的DAO(或Repository)对象都是根据应用测试需求Mock出来的,...

基于Spring的微信第三方登录实现

在前几篇文章中,我们介绍了 OAuth2.0认证和授权机制讲解 ,并实现了 基于Spring的Github第三方登录 通用化的第三方登陆实现 ,之后,我们基于该通用化的框架,介绍了国内的两个比较流行的第三方登录平台: 基于Spring的新浪微博第三方登录实现 和 基于Spring的QQ第三方登录实现 。以上几个第三方登录平台都严格遵守了OAuth2.0协议。但是,近来作者发现微信的第三方登录确不是那么严格的遵守通用化的OAuth2.0协议,有些细节实现不太一样(例如获取AccessToken时其他OAuth平台用的字段名为client_id,但是微信中是appid),这就导致了之前的通用化框架...

基于Spring的QQ第三方登录实现

之前我们完成了 基于Spring的Github第三方登录 通用化的第三方登陆实现 以及 基于Spring的新浪微博第三方登录实现 ,接下来我们来学习一下如何实现QQ第三方登录。 完善个人信息 在实现QQ第三方登录功能之前,需要前往 QQ互联 完善个人信息,并添加你的第三方应用的相关信息。 访问 QQ互联 ,点击【管理中心】,进入应用开发者完善界面: 创建第三方应用 按要求注册应用者开发信息后,进入 应用管理中心 ,点击【创建应用】,选择网站,按要求填写相关信息,与微博一样,QQ也需要填写网站地址以及验证是否是网站所有者,验证方法和微博一样,都是在首页添加一行代码,同时,还需要填写回调地址: 创...

基于Spring的新浪微博第三方登录实现

在《 Github第三方登录 通用化的第三方登陆实现 》中我们实现了一个通用化的第三方登录框架,其中包括OAUth的基本流程以及最简单的用户注册。但是不同的第三方登录因为其细节不同还是有很多坑的,今天我们就从完善开发者信息开始一步一步添加微博第三方登录的功能。 注意,需要完成微博的第三方登录功能需要有一个域名以及修改该域名网站的权限,之后审核时需要对首页进行修改。这里我们假设我们的域名是tianmaying.com。 完善用户信息 首先我们进入 新浪微博开发平台 ,登录我们的微博账号,点击右上角的【我的应用】,我们就会看见相关的功能以及相对应需要完善的信息。 我们可以看到,如果需要添加第三方应...

Spring Boot应用日志

日志对于应用程序来说是非常重要的,Spring框架本身集成了不少其他工具,我们自身的应用也会使用到第三方库,所以我们推荐在Spring应用中使用SLF4J/Logback来记录日志。 SLF4J与Logback简介 SLF4J ——Simple Logging Facade For Java,它是一个针对于各类Java日志框架的统一 Facade 抽象。Java日志框架众多——常用的有 java.util.logging , log4j , logback , commons logging , Spring框架使用的是Jakarta Commons Logging API (JCL)。而SL...

新一代Java模板引擎Thymeleaf

Thymeleaf 是一款用于渲染XML/XHTML/HTML5内容的模板引擎。类似JSP,Velocity,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。与其它模板引擎相比,Thymeleaf最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用。 Thymeleaf初探 相比于其他的模板引擎,Thymeleaf最大的特点是通过HTML的标签属性渲染标签内容,以下是一个Thymeleaf模板例子: <!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/x...

Spring Boot使用Redis进行消息的发布订阅

今天来学习如何利用Spring Data对Redis的支持来实现消息的发布订阅机制。发布订阅是一种典型的异步通信模型,可以让消息的发布者和订阅者充分解耦。在我们的例子中,我们将使用 StringRedisTemplate 来发布一个字符串消息,同时基于 MessageListenerAdapter 使用一个POJO来订阅和响应该消息。 提示 事实上,RedisRedis 不仅提供一个NoSQL数据库,同时提供了一套消息系统。 环境准备 开发环境: IDE+Java环境(JDK 1.7或以上版本) Maven 3.0+(Eclipse和Idea IntelliJ内置,如果使用IDE并且不使用命令...

基于Spring的Github第三方登录--通用化的第三方登陆实现

在 《OAuth2.0认证和授权机制讲解》 中我们知道了现在主流的第三方登陆是怎样一个流程,那么现在,就让我们自己来实现一个通用化的第三方登陆实现吧。 准备工作 在做第三方登陆之前,首先我们当然需要有一个授权服务器承认的第三方应用身份,因此,我们首先前往授权服务器进行申请,由于国内的所有应用都需要进行审核,比较麻烦,这里我们以Github为例,首先申请一个第三方应用的资格。 首先登陆Github账号,进入【Settings】 >选择【applications】 >选择【Developer applications】,这里我们可以看到当前账户所拥有的第三方应用。 点击右上角的【Reg...

基于Spring访问REST服务

我们之前学习过如何将关系数据库中的数据轻转化为REST服务可访问的信息, 轻松写意的例子 。基于Spring来访问REST服务也非常简单,只需要对POJO进行标注,通过Spring提供的 RestTemplate 就能轻松搞定,来一探究竟吧。 开发环境 IDE+Java环境(JDK 1.7或以上版本) Maven 3.0+(Eclipse和Idea IntelliJ内置,如果使用IDE并且不使用命令行工具可以不安装) POM文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.o...

基于Spring的设备类型检查

移动互联网时代用户的行为习惯逐渐往移动端迁移,越来越多的人通过手机浏览器来浏览网页。有时,我们需要知道一个用户是通过什么设备来访问我们的页面的,比如对比PC端访问量和移动端访问量。这些信息我们可以通过解析HTTP请求中的头信息来获取,但是这样和核心业务逻辑无关的代码放到Controller中实在不够优雅。没关系,Spring已经把这种脏活累活给干了!来看看基于Spring如何来做设备类型检查吧。 开发环境 IDE+Java环境(JDK 1.7或以上版本) Maven 3.0+(Eclipse和Idea IntelliJ内置,如果使用IDE并且不使用命令行工具可以不安装) pom.xml <...

Spring进行表单验证

今天我们接着Spring表单处理这一篇,来继续讲基于Spring如何进行表单验证,例子也一并沿用。这里只是告诉你表单验证的基本方法和思路,还是David的惯有写法,注重原理,不抠细节。不过大家开发过程中就得玩命抠啊! 对表单处理有兴趣的同学可以先看看 Spring表单处理 。 开发环境 IDE+Java环境(JDK 1.7或以上版本) Maven 3.0+(Eclipse和Idea IntelliJ内置,如果使用IDE并且不使用命令行工具可以不安装) POM文件如下: pom.xml <?xml version="1.0" encoding="UTF 8"?>...

Spring处理表单提交

今天我们来讲一个最简单的表单提交处理的例子,通过提交一个表单给朋友打一声招呼! 看这边文章之前,你至少应该了解基于Spring的Web开发的基础知识,需要补课的赶紧戳 这里 。​当然,你还是应该准备好开发环境: IDE+Java环境(JDK 1.7或以上版本) Maven 3.0+(Eclipse和Idea IntelliJ内置,如果使用IDE并且不使用命令行工具可以不安装) 准备POM文件 POM.xml <?xml version="1.0" encoding="UTF 8"?>...

Spring MVC快速入门教程

今天给大家介绍一下Spring MVC,让我们学习一下如何利用Spring MVC快速的搭建一个简单的web应用。 更深入地学习Spring MVC,请大家参考 Spring MVC实战入门训练 。 参考代码请戳右上角,下载下来后可以在Eclipse或者IntelliJ中导入为一个Maven项目。 环境准备 一个称手的文本编辑器(例如Vim、Emacs、Sublime Text)或者IDE(Eclipse、Idea Intellij) Java环境(JDK 1.7或以上版本) Maven 3.0+(Eclipse和Idea IntelliJ内置,如果使用IDE并且不使用命令行工具可以不安装)...

反馈意见