Spring Boot基础篇
本栏目介绍Spring Boot的入门知识,同时配合Demo来增加实操性。
JeeLearner
拥有无人能及的自信,收获无法企及的成功!
展开
-
【喜讯】:个人网站开通啦!
个人网站开通,欢迎大家提出好的意见和建议哦,谢谢大家的支持~~~~原创 2017-10-13 14:46:11 · 23774 阅读 · 8 评论 -
Spring Boot项目结构推荐
Spring Boot框架本身并没有对项目结构有特别的要求,但是按照最佳实践的项目结构可以减少可能会遇见的坑,尤其是Spring包扫描机制的存在,也可以免去不少特殊的配置工作。典型示例一root package结构:com.lyd.example应用主类Application.java置于root package下,通常我们会在应用主类中做一些框架配置扫描等配置,我们放在root pa原创 2017-08-03 09:53:18 · 3504 阅读 · 0 评论 -
springboot之Starter POMs
springboot如今给我们带来了很大便利,不仅在配置方面简化了,在引入依赖时也是很方便,因为Starter POMs的出世!Starter POMs是可以包含到应用中的一个方便的依赖关系描述符集合。你可以获取所有spring及相关技术的一站式服务,而不需要翻阅示例代码,拷贝粘贴大量的依赖描述符。例如,如果你想使用Spring和JPA进行数据库访问,只需要在你的项目中包含spring-boo原创 2017-07-27 11:28:49 · 698 阅读 · 0 评论 -
springboot常用注解集锦
@SpringBootApplication:包含@Configuration、@EnableAutoConfiguration、@ComponentScan通常用在主类上。@Repository:用于标注数据访问组件,即DAO组件。@Service:用于标注业务层组件。 @RestController:用于标注控制层组件(如struts中的action原创 2017-09-20 09:39:13 · 912 阅读 · 0 评论 -
springboot之依赖集锦pom.xml(更新中)
一、springboot依赖--基础包:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apa原创 2017-07-31 11:39:40 · 16360 阅读 · 4 评论 -
springboot集成kaptcha验证码
准备工作:1.你要有一个springboot的hello world的工程,并能正常运行。2.导入kaptcha的maven:[html] view plain copy dependency> groupId>com.github.pengglegroupId> artifactId>kaptchaartifactId>原创 2017-09-07 11:12:55 · 3526 阅读 · 0 评论 -
springboot项目部署
部署1.打jar包并放到服务器上。2.执行命令:java -jar show-web-1.0.0-exec.jar即可运行。 说明:show-web-1.0.0-exec.jar为项目的jar包。注意1.执行命令项目运行后,如果关闭这个链接,这个进程也会删除。 解决:使用管道实现项目的运行。 操作:①用vim创建文件start.sh原创 2017-09-28 16:18:15 · 4419 阅读 · 0 评论 -
springboot【1】入门之初识
简介Spring Boot是Spring团队推出的新框架,它所使用的核心技术还是Spring框架,主要是Spring 4.x,所以如果熟悉spring 4的人,能够更快的接受和学会这个框架。Spring boot可以看做是在spring框架基础上再包了一层,这一层包含方便开发者进行配置管理和快速开发的模块,以及提供了一些开箱即用的工具,比如监控等。Spring Boot让我们的Spring原创 2017-07-20 15:45:19 · 1603 阅读 · 1 评论 -
springboot【2】入门之配置文件
相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷。我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁多的XML配置内容,替代它的是在pom.xml中引入模块化的Starter POMs,其中各个模块都有自己的默认配置,所以如果不是特殊应用场景,就只需要在application.propertie原创 2017-07-27 14:49:46 · 1278 阅读 · 0 评论 -
springboot【3】web开发之构建RESTful API与单元测试
使用Spring MVC来实现一组对User对象操作的RESTful API,配合注释详细说明在Spring MVC中映射HTTP请求、传参、编写单元测试。我们通过引入web模块,但是没有做其他的任何配置,就可以轻松利用Spring MVC的功能,完成对User对象的RESTful API的创建以及单元测试的编写。同时介绍Spring MVC中最为常用的几个核心注解:@Contro原创 2017-07-28 15:17:40 · 1978 阅读 · 0 评论 -
springboot【4】web开发之使用模板引擎渲染web视图
1.静态资源访问在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。默认配置Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:/static/public/resources/META-INF/resources举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片原创 2017-07-30 21:23:44 · 3587 阅读 · 0 评论 -
springboot【5】web开发之Swagger2
在做接口模块时,往往是分离开发,在各部门沟通时往往会定接口和测试。传统做法:我们会创建一份RESTful API文档来记录所有接口细节,然而这样的做法有以下几个问题:由于接口众多,并且细节复杂(需要考虑不同的HTTP请求类型、HTTP头部信息、HTTP请求内容等),高质量地创建这份文档是件非常吃力的事。随着时间推移,不断修改接口实现的时候都必须同步修改接口文档,而文档与代码又处于两个不原创 2017-07-31 11:05:08 · 765 阅读 · 0 评论 -
springboot【6】web开发之异常处理
在开发Web应用的时候,请求处理过程中发生错误是非常常见的情况。Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用来展示异常内容。以example04为基础,启动该应用,访问一个不存在的URL,或是修改处理内容,直接抛出异常,如:package com.lyd.web;import org.springf原创 2017-08-01 17:42:24 · 663 阅读 · 0 评论 -
springboot【7】安全控制之Spring Security
在开发Web应用时,经常需要对页面做一些安全控制,比如:对于没有访问权限的用户需要转到登录页面。要实现访问控制的方法多种多样,可以通过AOP、拦截器实现,也可以通过框架实现(如:Apache Shiro、Spring Security)。本文将介绍在Spring Boot中如何使用Spring Security进行安全控制。准备工作Web层实现请求映射com.lyd.web.Hel原创 2017-08-02 15:12:12 · 1420 阅读 · 1 评论 -
springboot【8】数据访问之JdbcTemplate访问数据库
一、数据源配置在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式。首先,为了连接数据库需要引入jdbc支持,在pom.xml中引入如下配置: org.springframework.boot spring-boot-starter-jdbc嵌入式数据库支持嵌入式数据库通常用于开发和测试环境,不推荐用于生产环境。Sprin原创 2017-08-02 17:37:26 · 707 阅读 · 0 评论 -
springboot【9】数据访问之Spring-data-jpa
在实际开发过程中,对数据库的操作无非就“增删改查”。就最为普遍的单表操作而言,除了表和字段不同外,语句都是类似的,开发人员需要写大量类似而枯燥的语句来完成业务逻辑。为了解决这些大量枯燥的数据操作语句,我们第一个想到的是使用ORM框架,比如:Hibernate。通过整合Hibernate之后,我们以操作Java实体的方式最终将数据改变映射到数据库表中。为了解决抽象各个Java实体基本的“增删改查”操原创 2017-08-03 12:19:31 · 1682 阅读 · 0 评论 -
springboot【10】数据访问之多数据源配置使用
之前在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源。在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.properties文件中配置连接参数即可。但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据源,下面基于之前的JdbcTemplate和Spring-data-jpa例子分别原创 2017-08-07 10:10:48 · 2453 阅读 · 0 评论 -
springboot【11】数据访问之NoSQL数据库redis
Spring Boot中除了对常用的关系型数据库提供了优秀的自动化支持之外,对于很多NoSQL数据库也提供了自动化配置的支持,包括:Redis, MongoDB, Elasticsearch, Solr和Cassandra。一、使用RedisRedis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。Redis官网Red原创 2017-08-07 16:23:53 · 433 阅读 · 1 评论 -
springboot【12】数据访问之NoSQL数据库MongoDB
一、MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库之间的产品,其主要目标是在键/值存储方式(提供了高性能和高度伸缩性)和传统的RDBMS系统(具有丰富的功能)之间架起一座桥梁,它集两者的优势于一身。MongoDB支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型,也也使得它所存储的数据在N原创 2017-08-07 17:17:27 · 451 阅读 · 0 评论 -
springboot【13】数据访问之整合Mybatis
本文详细介绍如何在Spring Boot中整合MyBatis,并通过注解方式实现映射。一、整合MyBatispom.xml中引入依赖spring-boot-starter基础和spring-boot-starter-test单元测试验证数据访问引入连接mysql的必要依赖mysql-connector-java引入整合MyBatis的核心依赖mybatis-spring-b原创 2017-08-08 15:02:40 · 585 阅读 · 0 评论 -
springboot【14】事务管理
什么是事务? 我们在开发企业应用时,对于业务人员的一个操作实际是对数据读写的多步操作的结合。由于数据操作在顺序执行的过程中,任何一步操作都有可能发生异常,异常会导致后续操作无法完成,此时由于业务逻辑并未正确的完成,之前成功操作数据的并不可靠,需要在这种情况下进行回退。 事务的作用就是为了保证用户的每一个操作都是可靠的,事务中的每一步操作都必须成功执行,只要有发生原创 2017-08-08 17:10:07 · 719 阅读 · 0 评论 -
springboot【15】缓存之EhCache
随着用户的增加,数据规模的扩大,往往数据库查询操作会影响到用户体验,此时使用缓存往往是解决这一问题非常好的手段之一。Spring 3开始提供了强大的基于注解的缓存支持,可以通过注解配置方式低侵入的给原有Spring应用增加缓存功能,提高数据访问性能。在Spring Boot中对于缓存的支持,提供了一系列的自动化配置,使我们可以非常方便的使用缓存。下面通过一个简单示例来给一个既有应用增加缓存功能。原创 2017-08-10 11:38:31 · 3766 阅读 · 0 评论 -
springboot【16】缓存之Redis
下面以上一篇的例子作为基础进行改造,将缓存内容迁移到redis中。开始改造删除EhCache的配置文件src/main/resources/ehcache.xmlpom.xml中删除EhCache的依赖,增加redis的依赖: org.springframework.boot spring-boot-starter-redisapplica原创 2017-08-10 17:13:32 · 370 阅读 · 0 评论 -
springboot【17】日志管理之logback
Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J,Log4J2和Logback。每种Logger都可以通过配置使用控制台或者文件输出日志内容。格式化日志默认的日志输出如下:2017-08-11 10:23:50.120 INFO 37397 --- [原创 2017-08-11 10:24:20 · 475 阅读 · 0 评论 -
springboot【18】日志管理之log4j
Spring Boot默认配置的是Logback日志工具,但是对于log4j,Spring Boot依然可以很好的支持,只是需要做一些小小的配置功能。本文主要介绍如何在spring boot中引入log4j,以及一些基础用法,对于更多log4j的用法,还请参考log4j官方网站引入log4j依赖在创建Spring Boot工程时,我们引入了spring-boot-start原创 2017-08-11 10:28:14 · 837 阅读 · 2 评论 -
springboot【19】日志管理之使用AOP统一处理Web请求日志
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是Spring框架中的一个重要内容,它通过对既有程序定义一个切入点,然后在其前后切入不同的执行内容,比如常见的有:打开数据库连接/关闭数据库连接、打开事务/关闭事务、记录日志等。基于AOP不会破坏原来程序逻辑,因此它可以很好的对业务逻辑的各原创 2017-08-16 11:26:22 · 3409 阅读 · 1 评论 -
springboot【20】日志管理之log4j实现http请求日志入mongodb
当我们在集群中部署应用之后,应用请求的日志被分散记录在了不同应用服务器的文件系统上,这样分散的存储并不利于我们对日志内容的检索。解决日志分散问题的方案多种多样,本文思路以扩展log4j实现将日志写入MongoDB。准备工作 以springboot【19】日志管理之使用AOP统一处理Web请求日志 为基础,进行本功能的改造。该工程实现了一个简单的REST接口,一个对web层的切原创 2017-08-21 17:12:42 · 1465 阅读 · 0 评论 -
springboot【21】日志管理之1.5.x新特性:动态修改日志级别
对于1.5.x版本的新特性列表读者可以直接查看官方博文:《Spring Boot 1.5.1 released》来进行了解。loggers端点 Spring Boot 1.5.x中引入的一个新的控制端点:/loggers,该端点将为我们提供动态修改Spring Boot应用日志级别的强大功能。该功能的使用非常简单,它依然延续了Spring Boot自动化配置的实现,所以只需要原创 2017-08-22 11:11:25 · 416 阅读 · 0 评论 -
springboot【22】监控管理之Actuator监控端点简介
下面介绍一个不同于其他模块那样大多用于开发业务功能或是连接一些其他外部资源,它完全是一个用于暴露自身信息的模块spring-boot-starter-actuator,它的主要作用是用于监控与管理。spring-boot-starter-actuator模块的实现对于实施微服务的中小团队来说,可以有效地减少监控系统在采集应用指标时的开发量。当然,它也并不是万能的,需要对其做一些简单的扩展来帮助我们原创 2017-08-22 16:55:19 · 1153 阅读 · 0 评论 -
springboot【23】监控管理之Actuator监控端点实践
在传统Spring应用中使用spring-boot-actuator模块提供监控端点 在Spring Boot应用中,我们只需要简单的引入spring-boot-starter-actuator依赖就能为应用添加各种有用的监控端点。其中,/health端点能够全面检查应用的健康状态,该端点也被Spring Cloud中的服务治理(Eureka、Consul)用来检查应用的健康状原创 2017-08-23 15:00:41 · 840 阅读 · 0 评论 -
springboot【24】监控管理之Actuator的/info端点输出Git版本信息
springboot的Actuator模块中有个特殊端点/info除了描述应用信息之外,也还可以用来描述Git版本信息,并且整合方法非常简单,下面我们就来看看如何使用/info端点暴露当前应用的Git版本信息。POM配置首先,我们可以挑选任意一个Spring Boot项目,修改它的pom.xml:引入spring-boot-starter-actuator,提供/info端点原创 2017-08-23 15:42:37 · 2183 阅读 · 0 评论 -
springboot【25】定时任务@Scheduled
们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信、邮件之类的操作,也可能会定时地检查和监控一些标志、参数等。具体参见官方的Scheduling Tasks创建定时任务在Spring Boot中编写定时任务是非常简单的事,下面通过实例介绍如何在Spring Boot中创建定时任务,实现每过5秒输出一下当前时间。在Spring Boot的主类中加原创 2017-08-23 16:27:29 · 460 阅读 · 0 评论 -
springboot【26】异步调用@Async
“异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行;异步调用指程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的程序。同步调用下面通过一个简单示例来直观的理解什么是同步调用:定义Task类,创建三个处理函数分别模拟三个执行任务的操作,操作消耗时间随机取(10秒内)package com.lyd原创 2017-08-24 16:02:16 · 482 阅读 · 0 评论 -
springboot【27】邮件发送JavaMailSender
Spring提供了非常好用的JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。下面演示在Spring Boot中使用JavaMailSender发送邮件。快速入门在Spring Boot的工程中的pom.xml中引入spring-boot-starter-mail依赖: org.springframework原创 2017-08-24 17:11:05 · 679 阅读 · 0 评论 -
springboot【28】状态机的实现-Spring StateMachine框架
Spring StateMachine框架的第三个Release版本1.2.0增加了对Spring Boot的自动化配置。快速入门 假设我们需要实现一个订单的相关流程,其中包括订单创建、订单支付、订单收货三个动作。整个实现过程:创建一个Spring Boot的基础工程,并在pom.xml中加入spring-statemachine-core的依赖,具体如原创 2017-08-25 14:57:19 · 2129 阅读 · 0 评论 -
springboot【29】事务管理
springboot 对新人来说可能上手比springmvc要快,但是对于各位从springmvc转战到springboot的话,有些地方还需要适应下,尤其是xml配置。我个人是比较喜欢注解➕xml是因为看着方便,查找方便,清晰明了。但是xml完全可以使用注解代替,今天就扒一扒springboot中事务使用注解的玩法。 springboot的事务也主要分为两大类,一是xml声明式事务,二是注原创 2017-11-01 16:17:00 · 462 阅读 · 0 评论