首先创建maven项目 pom.xml: <?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:schemaLocation="http://maven.apa…
SpringBoot系列之自定义starter实践教程 Springboot是有提供了很多starter的,starter翻译过来可以理解为场景启动器,所谓场景启动器配置了自动配置等等对应业务模块的一个工程,有需要时候直接引入项目就可以,比如需要使用rabbitMQ,直接引入spring-boot-starter-activemq既可,详细介绍可以参考Springboot官方文档关于starters的介绍 查看官方文档,可以找到如下的命名规范: 其意思是SpringBoot官方的starter命…
本周介绍SpringBoot项目的国际化是如何处理的,阅读本章前请阅读[SpringBoot]SpringBoot与Thymeleaf模版(六)的相关内容 国际化原理 1.在Spring中有国际化Locale(区域信息对象):LocaleResolver(获取区域信息对象,区域信息解析器),2个重要的对象,通过区域信息解析器就能自动给页面绑定不同的数据内容. 2.查看SpringBoot项目中,WebMvcAutoConfiguration类中有注入区域信息解析器AcceptHeaderLoca…
本文介绍SpringBoot对Spring MVC自动配置,SpringBoot自动配置原理可以参考:[SpringBoot]SpringBoot配置与单元测试(二) 首先新建一个SpringBoot的web项目,参考:[SpringBoot]SpringBoot快速入门(一) 本例pom文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.ap…
一.发开前准备 1.创建一个SpringBoot应用,引入我们需要的模块 2.SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置,就能运行起来 3.编写业务代码 二.静态资源映射规则 在WebMvcAutoConfiguration中有着如下的配置: @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { if (!this.resourceProperties.isA…
参考资料: http://www.tuicool.com/articles/mqeee2A http://www.cnblogs.com/suncj/p/4065589.html http://spring.io/guides/gs/spring-boot/ mvn spring-boot:run 深入: http://www.cnblogs.com/skyblog/p/5127690.html http://git.oschina.net/zhou666/spring-cloud-7simpl…
前言 本文主要介绍SpringBoot的一些打包事项和项目部署以及在其中遇到一些问题的解决方案. SpringBoot打包 在SpringBoot打包这块,我们就用之前的一个web项目来进行打包. 首先需要明确的是,该项目打包的形态是可执行的jar包,还是在tomcat下运行的war包. 虽然本项目是用maven构建的,用maven打包也更加方便,但是这里也说明普通非maven打包的项目如何打包. Maven打包 首先是maven方式打包: 如果是jar包 需在pom.xml指定打成的包为: <…
一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration注解.其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文. @Configuration  等同于spring的XML配置文件:使用Java代码可以检查类型安全. @EnableAutoConfiguration  自动配置. @Comp…
首先明白Spring是什么,Spring是Java开发的一个框架,为了方便简化Java开发. 什么是注解(注解式开发)? Spring的常用注解有哪些? 假如用SpringBoot构建一个网站程序,应该怎样考虑构建?第一步应该做什么? SpringBoot是将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来, 要用什么功能就导入什么场景的启动器. SpringBoot的使用基本也是围绕场景启动器(业务场景所需)…
介绍 邮件服务是常用的服务之一,作用很多,对外可以给用户发送活动.营销广告等:对内可以发送系统监控报告与告警. 本文将介绍Springboot如何整合邮件服务,并给出不同邮件服务商的整合配置. 如图所示:   Springboot整合邮件服务 开发过程 Springboot搭建 Springboot的搭建非常简单,我们使用 Spring Initializr来构建,十分方便,选择需要用到的模块,就能快速完成项目的搭建:   Spring Initializr 引入依赖 为了使用邮件服务,我们需要…
SpringBoot项目创建参考[SpringBoot]SpringBoot快速入门(一) 本文介绍SpringBoot项目的POM文件.配置与单元测试 POM文件 1.SpringBoot的pom文件中,看到都依赖一个springboot的父项目,如下 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐parent</artifac…
本周介绍SpringBoot项目Web开发的项目内容,及常用的CRUD操作,阅读本章前请阅读[SpringBoot]SpringBoot与Thymeleaf模版(六)的相关内容 Web开发 项目搭建 1.新建一个SpringBoot的web项目.pom.xml文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.…
步骤 1.在pom.xml添加mysql,spring-data-jpa依赖2.在application.properties文件中配置mysql连接配置文件3.在application.properties文件中配置JPA配置信息4.编写测试例子 内容 1.在pom.xml添加mysql,spring-data-jpa依赖 1 2 3 4 5 6 7 8 <dependency> <groupId>mysql</groupId> <artifactId>m…
kotlin+springboot+mybatis-puls+mysql搭建web工程 ​ 前段时间研究了spring security及OAuth2系列之后,本来打算研究spring的,但是部门发生了一些情况,我转岗到了另一个部门,具体做内部CICD的产品,需要用kotlin开发,于是我需要从零开始学习Kotlin语言.于是我连忙找了本Kotlin的书籍看了几天主要的语法章节,想着需要做点demo让自己熟悉一下,于是有了这篇文章. ​ 本片主要讲怎么基于kotlin搭建springboot-w…
springboot 的start 建一个父工程 不需要其他目录结构,需要注意的是把type的类型改为POM 这样就没有工程的目录结构 因为父工程不需要 给父工程的pom添加依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </depende…
SpringBoot应用的启动方式很简单,就一行代码,如下图01: 其实这行代码背后主要执行两个方法,一个是构造方法,一个是run方法. 构造方法主要内容就是收集一些数据,和确认一些信息.如下图02: 真正的执行要从run方法开始,为此,SpringBoot特意定义了一个监听器,专门监听这个run方法的执行过程. 这个监听器的名字是,SpringApplicationRunListener,如下图03: 这个接口的方法其实就表示了SpringBoot应用的启动过程. 备注:这个监听器是Sprin…
若想实际自定义相关配置,只需要继承WebMvcConfigurerAdapter.WebMvcConfigurerAdapter定义些空方法用来重写项目需要用到的WebMvcConfigure实现.具体写法如下: @Configurationpublic class BootConfig  extends WebMvcConfigurerAdapter @Configuration表示这是Java配置类: 一.编码配置 在springmvc中使用在web.xml添加过滤器. <filter> …
工作中用到了springboot的缓存,使用起来挺方便的,直接引入redis或者ehcache这些缓存依赖包和相关缓存的starter依赖包,然后在启动类中加入@EnableCaching注解,然后在需要的地方就可以使用@Cacheable和@CacheEvict使用和删除缓存了.这个使用很简单,相信用过springboot缓存的都会玩,这里就不再多说了.美中不足的是,springboot使用了插件式的集成方式,虽然用起来很方便,但是当你集成ehcache的时候就是用ehcache,集成redi…
需求 mybatis目前已经内嵌入了springboot中了,这说明其目前在数据访问层的绝对优势.而我们在开发的过程中,往往会在程序中使用枚举(enum) 来表示一些状态或选项,而在数据库中使用数字来存储.这样做的好处是在程序中使用enum更直观的可以知道每个值代表的状态及含义,还可以做国际化的功能.那么这样会带来一个问题那就是:程序中的枚举 与 数据库中的数字 转换问题. 介绍 抱歉,最近因为实在太忙,所以写一半就停了.等有空继续.不将就哈.停了大概一周的时间,在周一的早上继续来完成这篇文章.…
=================6.SpringBoot拦截器实战和 Servlet3.0自定义Filter.Listener ============ 1.深入SpringBoot2.x过滤器Filter和使用Servlet3.0配置自定义Filter实战(核心知识) 简介:讲解SpringBoot里面Filter讲解和使用Servlet3.0配置自定义Filter实战 filter简单理解:人--->检票员(filter)---> 景点 1.SpringBoot启动默认加载的Filter…
spring-boot 提供了很多默认的配置项,但是开发过程中,总会有一些业务自己的配置项,下面示例了,如何添加一个自定义的配置: 一.写一个自定义配置的类 package com.example.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component…
一.定义我们自己的切库注解类 自定义注解有几点需要注意: 1)@Target 是作用的目标,接口.方法.类.字段.包等等,具体看:ElementType 2)@Retention 是注解存在的范围,RUNTIME代表的是注解会在class字节码文件中存在,在运行时可以通过反射获取到,具体看:RetentionPolicy 3)允许的变量,通常都要给定默认值,比如我们使用一个service时,可以@Service,也可以 @Service("xxxx") @Retention(Reten…
spring boot使用application.properties默认了很多配置.但需要自己添加一些配置的时候,可以这样用,如下! 在application.properties文件中增加信息 1.在application.properties配置文件增加 ##自定义属性 rick.name=rick rick.age=30 2.自定义配置类RickProperties package com.rick.common.properties; import org.springframewor…
今天在公司没事干,记一次springboot遇到的一些坑,在百度上也没有搜到类似的问题和答案(或者说 答案不是我想要的) 当我们在SpringBoot遇到了404或者500的错误的时候,你们会怎么办? 写一个全局异常?写一个错误页面? 不不不,其实都不需要这些的,当我们使用微服务架构的时候我们是不是使用的都是Rest API? 所以,我今天在网上搜了很多返回404,500这种错误的时候,没有找到一个合适的.要么是这种? 这种不是应该需要指向错误页面吗? 那么我们springboot系统如果不使用…
Springboot读取自定义的配置文件时候,使用@value,一定要指定配置文件的位置!  否则报错参数化异常!…
之前项目的springboot自定义拦截器使用的是继承WebMvcConfigurerAdapter重写常用方法的方式来实现的. 以下WebMvcConfigurerAdapter 比较常用的重写接口    /** 解决跨域问题 **/    public void addCorsMappings(CorsRegistry registry) ;    /** 添加拦截器 **/    void addInterceptors(InterceptorRegistry registry);   …
问题描述 SpringBoot项目使用logback自定义配置后,会在/tmp/ 目录下生成 spring.log的文件(如下图所示). 解决方案 通过各种资料的搜索,最终发现问题的所在(logback配置如下). <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true"> <include resource="org/springf…
前言: 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同.按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重复处理.如何保证其幂等性,通常有以下手段: 1:数据库建立唯一性索引,可以保证最终插入数据库的只有一条数据 2:token机制,每次接口请求前先获取一个token,然后再下次请求的时候在请求的header体中加上这个token,后台进行验证,如果验证通过删除token,下次请求再次判断tok…
使用自定义参数注解获取 token 中User数据 使用背景 在springboot项目开发中需要从token中获取用户信息时通常的方式要经历几个步骤 拦截器中截获token TokenUtil工具类解析token中的用户信息 把解析结果存入到成员变量中 controller中通过TokenUtil工具类提供的静态方法获取用户信息 下面是过程示例代码 /*--------1.拦截器中获取---------*/ String token =request.getHeader("token"…
1.异常来源 要处理程序发生的异常,首先需要知道异常来自哪里? 1.前端错误的的请求路径,会使得程序发生4xx错误,最常见的就是404,Springboot默认当发生这种错误的请求路径,pc端响应的页面如下 如果是移动端(手机端)将会响应json格式的数据,如下 2.Springboot异常处理原理 为什么我们请求错误的路径,boot会给我们返回一个上面错误页面或者json格式数据呢?原理是怎样的呢? Springboot项目启动之后,执行有@SpringBootApplication注解的启动…