- 博客(83)
- 收藏
- 关注
转载 Spring Boot教程(四十二)LDAP来管理用户信息(2)
使用spring-data-ldap的基础用法,定义LDAP中属性与我们Java中定义实体的关系映射以及对应的Repository@Data@Entry(base = "ou=people,dc=didispace,dc=com", objectClasses = "inetOrgPerson")public class Person { @Id ...
2018-03-09 10:38:00 362
转载 Spring Boot教程(四十一)LDAP来管理用户信息(1)
LDAP简介LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务。目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化。目录一般用来包含描述性的,基于属性的信息并支持精细复杂的过滤能力。目录一般不支持通用数据库针对大量更新操作操作需要的复杂的事务管理或回卷策略。而目录服务...
2018-03-09 10:37:00 208
转载 Spring Boot教程(四十)使用Flyway来管理数据库版本
在上面的使用JdbcTemplate一文中,主要通过spring提供的JdbcTemplate实现对用户表的增删改查操作。在实现这个例子的时候,我们事先在MySQL中创建了用户表。创建表的过程我们在实际开发系统的时候会经常使用,但是一直有一个问题存在,由于一个系统的程序版本通过git得到了很好的版本控制,而数据库结构并没有,即使我们通过Git进行了语句的版本化,那么在各个环境的数据库中如...
2018-03-09 10:35:00 994
转载 Spring Boot教程(三十九)使用MyBatis注解配置详解(2)
增删改查MyBatis针对不同的数据库操作分别提供了不同的注解来进行配置,在之前的示例中演示了@Insert,下面针对User表做一组最基本的增删改查作为示例:public interface UserMapper { @Select("SELECT * FROM user WHERE name = #{name}") User findByName(...
2018-03-09 10:33:00 120
转载 Spring Boot教程(三十八)使用MyBatis注解配置详解(1)
之前在Spring Boot中整合MyBatis时,采用了注解的配置方式,相信很多人还是比较喜欢这种优雅的方式的,也收到不少读者朋友的反馈和问题,主要集中于针对各种场景下注解如何使用,下面就对几种常见的情况举例说明用法。传参方式下面通过几种不同传参方式来实现前文中实现的插入操作。使用@Param在之前的整合示例中我们已经使用了这种最简单的传参方式,如下:@Inse...
2018-03-09 10:31:00 94
转载 Spring Boot教程(三十七)整合MyBatis
Spring中整合MyBatis就不多说了,最近大量使用Spring Boot,因此整理一下Spring Boot中整合MyBatis的步骤。搜了一下Spring Boot整合MyBatis的文章,方法都比较老,比较繁琐。查了一下文档,实际已经支持较为简单的整合与使用。下面就来详细介绍如何在Spring Boot中整合MyBatis,并通过注解方式实现映射。整合MyBatis...
2018-03-08 10:13:00 73
转载 Spring Boot教程(三十六)使用MongoDB数据库(2)
快速开始使用Spring-data-mongodb若MongoDB的安装配置采用默认端口,那么在自动配置的情况下,我们不需要做任何参数配置,就能马上连接上本地的MongoDB。下面直接使用spring-data-mongodb来尝试对mongodb的存取操作。(记得mongod启动您的mongodb)创建要存储的User实体,包含属性:id、username、agep...
2018-03-08 10:12:00 73
转载 Spring Boot教程(三十五)使用MongoDB数据库(1)
MongoDB简介MongoDB是一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库之间的产品,其主要目标是在键/值存储方式(提供了高性能和高度伸缩性)和传统的RDBMS系统(具有丰富的功能)之间架起一座桥梁,它集两者的优势于一身。MongoDB支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型,也因为他的存储格式也使得它所存储...
2018-03-08 10:10:00 84
转载 Spring Boot教程(三十四)使用Redis数据库(2)
除了String类型,实战中我们还经常会在Redis中存储对象,这时候我们就会想是否可以使用类似RedisTemplate<String, User>来初始化并进行操作。但是Spring Boot并不支持直接使用,需要我们自己实现RedisSerializer<T>接口来对传入对象进行序列化和反序列化,下面我们通过一个实例来完成对象的读写操作。创建要存储的...
2018-03-08 10:09:00 75
转载 Spring Boot教程(三十三)使用Redis数据库(1)
Spring Boot中除了对常用的关系型数据库提供了优秀的自动化支持之外,对于很多NoSQL数据库一样提供了自动化配置的支持,包括:Redis, MongoDB, Elasticsearch, Solr和Cassandra。使用RedisRedis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。Redis官网R...
2018-03-08 10:07:00 100
转载 Spring Boot教程(三十二)多数据源配置与使用(2)
Spring-data-jpa支持对于数据源的配置可以沿用上例中DataSourceConfig的实现。新增对第一数据源的JPA配置,注意两处注释的地方,用于指定数据源对应的Entity实体和Repository定义位置,用@Primary区分主数据源。@Configuration@EnableTransactionManagement@EnableJpaRepo...
2018-03-07 11:12:00 98
转载 Spring Boot教程(三十二)多数据源配置与使用
之前在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源。在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.properties文件中配置连接参数即可。但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据源,下面基于之前的JdbcTemplate和Spring-data-jp...
2018-03-07 11:10:00 83
转载 Spring Boot教程(三十二)多数据源配置与使用(1)
之前在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源。在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.properties文件中配置连接参数即可。但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据源,下面基于之前的JdbcTemplate和Spring-data-jp...
2018-03-07 11:09:00 90
转载 Spring Boot教程(三十一)使用Spring-data-jpa(2)
创建实体创建一个User实体,包含id(主键)、name(姓名)、age(年龄)属性,通过ORM框架其会被映射到数据库表中,由于配置了hibernate.hbm2ddl.auto,在应用启动的时候框架会自动去数据库中创建对应的表。@Entitypublic class User { @Id @GeneratedValue private ...
2018-03-07 11:07:00 94
转载 Spring Boot教程(三十)使用Spring-data-jpa(1)
在实际开发过程中,对数据库的操作无非就“增删改查”。就最为普遍的单表操作而言,除了表和字段不同外,语句都是类似的,开发人员需要写大量类似而枯燥的语句来完成业务逻辑。为了解决这些大量枯燥的数据操作语句,我们第一个想到的是使用ORM框架,比如:Hibernate。通过整合Hibernate之后,我们以操作Java实体的方式最终将数据改变映射到数据库表中。为了解决抽象各个Java实体基...
2018-03-07 11:05:00 79
转载 Spring Boot教程(二十九)使用JdbcTemplate操作数据库
使用JdbcTemplate操作数据库Spring的JdbcTemplate是自动配置的,你可以直接使用@Autowired来注入到你自己的bean中来使用。举例:我们在创建User表,包含属性name、age,下面来编写数据访问对象和单元测试用例。定义包含有插入、删除、查询的抽象接口UserServicepublic interface UserService ...
2018-03-07 11:03:00 83
转载 Spring Boot教程(二十八)通过JdbcTemplate编写数据访问
数据源配置在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式。首先,为了连接数据库需要引入jdbc支持,在pom.xml中引入如下配置:<dependency> <groupId>org.springframework.boot</groupId> <artifactId&g...
2018-03-06 11:05:00 76
转载 Spring Boot教程(二十七)整合Spring Security
在这一节,我们将对/hello页面进行权限控制,必须是授权用户才能访问。当没有权限的用户访问后,跳转到登录页面。添加依赖在pom.xml中添加如下配置,引入对Spring Security的依赖。<dependencies> ... <dependency> <groupId>org...
2018-03-06 11:04:00 95
转载 Spring Boot教程(二十六)使用Spring Security安全控制
准备工作首先,构建一个简单的Web工程,以用于后续添加安全控制,也可以用之前Chapter3-1-2做为基础工程。若对如何使用Spring Boot构建Web应用,可以先阅读《Spring Boot开发Web应用》一文。Web层实现请求映射@Controllerpublic class HelloController { @RequestMapping(...
2018-03-06 11:01:00 99
转载 Spring Boot教程(二十五)返回JSON格式
在上述例子中,通过@ControllerAdvice统一定义不同Exception映射到不同错误处理页面。而当我们要实现RESTful API时,返回的错误是JSON格式的数据,而不是HTML页面,这时候我们也能轻松支持。本质上,只需在@ExceptionHandler之后加入@ResponseBody,就能让处理函数return的内容转换为JSON格式。下面以一个具体示例来实现...
2018-03-06 11:00:00 74
转载 Spring Boot教程(二十四)Web应用的统一异常处理
我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况。Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用来展示异常内容。选择一个之前实现过的Web应用(Chapter3-1-2)为基础,启动该应用,访问一个不存在的URL,或是修改处理内容,直接抛出异常,如:@RequestM...
2018-03-06 10:59:00 80
转载 Spring Boot教程(二十三)使用Swagger2构建强大的RESTful API文档(2)
添加文档内容在完成了上述配置后,其实已经可以生产文档内容,但是这样的文档主要针对请求本身,而描述主要来源于函数等命名产生,对用户并不友好,我们通常需要自己增加一些说明来丰富文档内容。如下所示,我们通过@ApiOperation注解来给API增加说明、通过@ApiImplicitParams、@ApiImplicitParam注解来给参数增加说明。@RestController...
2018-03-05 11:12:00 70
转载 Spring Boot教程(二十二)使用Swagger2构建强大的RESTful API文档(1)
由于Spring Boot能够快速开发、便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API。而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端。这样一来,我们的RESTful API就有可能要面对多个开发人员或多个开发团队:IOS开发、A...
2018-03-05 11:11:00 70
转载 Spring Boot教程(二十一)开发Web应用(2)
在完成配置之后,举一个简单的例子,在快速入门工程的基础上,举一个简单的示例来通过Thymeleaf渲染一个页面。@Controllerpublic class HelloController { @RequestMapping("/") public String index(ModelMap map) { // 加入一个属性,用来在...
2018-03-05 11:10:00 57
转载 Spring Boot教程(二十)开发Web应用(1)
静态资源访问在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。默认配置Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:/static/public/resources/META-INF/resources举例:我们可以在src/main/resources/目录下创建static...
2018-03-05 11:09:00 87
转载 Spring Boot教程(十九)RESTful API单元测试
下面针对该Controller编写测试用例验证正确性,具体如下。当然也可以通过浏览器插件等进行请求提交验证。@RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = MockServletContext.class) @WebAppConfiguration pu...
2018-03-05 11:07:00 61
转载 Spring Boot教程(十八)构建RESTful API
首先,回顾并详细说明一下在快速入门中使用的@Controller、@RestController、@RequestMapping注解。如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建议先看一下快速入门的内容。@Controller:修饰class,用来创建处理http请求的对象@RestController:Spring4之后加入的注解,原来在@Contro...
2018-03-02 10:26:00 72
转载 Spring Boot教程(十七)属性配置文件详解(2)
通过命令行设置属性值相信使用过一段时间Spring Boot的用户,一定知道这条命令:java -jar xxx.jar --server.port=8888,通过使用–server.port属性来设置xxx.jar应用的端口为8888。在命令行运行时,连续的两个减号--就是对application.properties中的属性值进行赋值的标识。所以,java -jar xxx....
2018-03-02 10:25:00 53
转载 Spring Boot教程(十六)属性配置文件详解(1)
相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷。我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁多的XML配置内容,替代它的是在pom.xml中引入模块化的Starter POMs,其中各个模块都有自己的默认配置,所以如果不是特殊应用场景,就只需要在application.proper...
2018-03-02 10:24:00 69
转载 Spring Boot教程(十五)使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程...
在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spring Boot工程的创建。而创建的方式多种多样,我们可以通过Maven来手工构建或是通过脚手架等方式快速搭建,也可以通过《Spring Boot快速入门》一文中提到的SPRING INITIALIZR页面工具来创建,相信每位读者都有自己最喜欢和最为熟练的创建方式。本文我们将介绍嵌入的Intelli...
2018-03-02 10:22:00 60
转载 Spring Boot教程(十四)快速入门
快速入门本章主要目标完成Spring Boot基础项目的构建,并且实现一个简单的Http请求处理,通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。系统要求:Java 7及以上Spring Framework 4.1.5及以上本文采用Java 1.8.0_73、Spring Boot 1.3.2调试通过。使用Maven...
2018-03-02 10:21:00 68
转载 Spring Boot教程(十三)整合elk(2)
配置、启动kibana到kibana的安装目录:./bin/kibana 默认配置即可。访问localhost:5601,网页显示:证明启动成功。创建springboot工程起步依赖如下:<dependencies> <dependency> <group...
2018-03-01 10:16:00 62
转载 Spring Boot教程(十二)整合elk(1)
elk 简介Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。Kibana 也是一个开源和免费的工具,它Kibana可以为 Logst...
2018-03-01 10:15:00 78
转载 Spring Boot教程(十一) springboot程序构建一个docker镜像
准备工作环境:linux环境或mac,不要用windowsjdk 8maven 3.0docker对docker一无所知的看docker教程。创建一个springboot工程引入web的起步依赖,创建一个 Controler:@SpringBootApplication@RestControllerpublic class Spri...
2018-03-01 10:13:00 97
转载 Spring Boot教程(十)异步方法测试
测试测试代码如下:@Componentpublic class AppRunner implements CommandLineRunner { private static final Logger logger = LoggerFactory.getLogger(AppRunner.class); private final GitHubL...
2018-02-28 09:57:00 297
转载 Spring Boot教程(九)异步方法
创建工程在pom文件引入相关依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </...
2018-02-28 09:51:00 73
转载 Spring Boot教程(八)创建含有多module的springboot工程
创建根工程创建一个maven 工程,其pom文件为:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:...
2018-02-28 09:48:00 80
转载 Spring Boot教程(七)通过springboot 去创建和提交一个表单
创建工程涉及了 web,加上spring-boot-starter-web和spring-boot-starter-thymeleaf的起步依赖。<dependencies> <dependency> <groupId>org.springframework.boot</groupId>...
2018-02-28 09:47:00 253
转载 Spring Boot教程(六)在springboot中验证表单信息
构建工程创建一个springboot工程,由于用到了 web 、thymeleaf、validator、el,引入相应的起步依赖和依赖,代码清单如下:<dependencies> <dependency> <groupId>org.springframework.boot</groupId...
2018-02-28 09:45:00 75
转载 Spring Boot教程(五)调度任务
构建工程创建一个Springboot工程,在它的程序入口加上@EnableScheduling,开启调度任务。@SpringBootApplication@EnableSchedulingpublic class SpringbootSchedulingTasksApplication { public static void main(String[]...
2018-02-27 10:12:00 69
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人