实现 初始化方法和销毁方法3种方式: 实现标识接口 InitializingBean,DisposableBean(不推荐使用,耦合性太高) 设置bean属性 Init-method destroy-method 使用注释配置后,调用@PostConstruct和@PreDestroy注解 注:@PostConstruct和@PreDestroy 标注不属于 Spring,它是在J2EE库- common-annotations.jar. @PostConstruct 和 @PreDestroy…
实现 初始化方法和销毁方法3种方式: 实现标识接口 InitializingBean,DisposableBean(不推荐使用,耦合性太高) 设置bean属性 Init-method destroy-method 使用注释配置后,调用@PostConstruct和@PreDestroy注解   在Spring中,可以使用 init-method 和 destroy-method 在bean 配置文件属性用于在bean初始化和销毁某些动作时.这是用来替代 InitializingBean和Disp…
Spring Boot(十二):spring boot如何测试打包部署 一.开发阶段 1,单元测试 在开发阶段的时候最重要的是单元测试了,springboot对单元测试的支持已经很完善了. (1)在pom包中添加spring-boot-starter-test包引用 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test<…
前言 邮件服务在开发中非常常见,比如用邮件注册账号.邮件作为找回密码的途径.用于订阅内容定期邮件推送等等,下面就简单的介绍下邮件实现方式. 准备 一个用于发送的邮箱,本文是用腾讯的域名邮箱,可以自己搞一个域名绑定下,登录地址:http://domain.mail.qq.com 邮件服务实现 1.添加依赖 <!-- 启用邮箱 --> <dependency> <groupId>org.springframework.boot</groupId> <art…
前言 服务治理 随着业务的发展,微服务应用也随之增加,这些服务的管理和治理会越来越难,并且集群规模.服务位置.服务命名都会发生变化,手动维护的方式极易发生错误或是命名冲突等问题.而服务治理正是为了解决这个问题,服务治理是微服务架构中最为核心和基础的模块,它主要实现各个微服务实例的自动化注册和发现. 服务注册 在服务治理框架中,都会构建一个或多个服务注册中心. 每个服务模块向注册中心登记自己所提供的服务,将主机host.端口号.版本号.通信协议等一些附加信息告知注册中心,注册中心按服务名分类组织服…
Java进阶(五十二)利用LOG4J生成服务日志 前言 由于论文写作需求,需要进行流程挖掘.前提是需要有真实的事件日志数据.真实的事件日志数据可以用来发现.监控和提升业务流程. 为了获得真实的事件日志数据,决定采用Log4J日志生成工具.首先,对工具有个大致的了解:日志是应用软件中不可缺少的部分,Apache的开源项目Log4j是一个功能强大的日志组件,提供方便的日志记录. Log4j下载 在apache网站:http://logging.apache.org/log4j/1.2/downloa…
前景介绍 在日常的工作中,我们经常会用到邮件服务,比如发送验证码,找回密码确认,注册时邮件验证等,所以今天在这里进行邮件服务的一些操作. 大致思路 我们要做的其实就是把Java程序作为一个客户端,然后通过配置SMTP协议去连接我们所使用的发送邮箱(from)对应的SMTP服务器,然后通过SMTP协议,将邮件转投到目标邮箱(to)对应的SMTP服务器,最后将该邮件分发到目标邮箱 Spring Boot给我们集成了邮件的相关服务,并给出了对应的starter,这里我们来实战学习一下邮件服务是怎么玩的…
在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro. 今天松哥就来和大家聊聊 Spring Boot 整合 Shiro 的话题! 一般来说,Spring Security 和 Shiro 的比较如下: Spring Security 是一个重量级的安全管理框架:Shiro 则是一个轻量级的安全管理框架 Spring Security 概念复杂,配置繁琐:Shiro 概念简单.配置简单 Spring…
快速上手 配置文件 pom包配置 pom包里面添加jpa和thymeleaf的相关包引用 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.…
1. TaskExecutor Spring异步线程池的接口类,其实质是java.util.concurrent.Executor Spring 已经实现的异常线程池: 1. SimpleAsyncTaskExecutor:不是真的线程池,这个类不重用线程,每次调用都会创建一个新的线程. 2. SyncTaskExecutor:这个类没有实现异步调用,只是一个同步操作.只适用于不需要多线程的地方 3. ConcurrentTaskExecutor:Executor的适配类,不推荐使用.如果Thr…
1. Spring MVC介绍 提到MVC,参与过Web应用程序开发的同学都很熟悉,它是展现层(也可以理解成直接展现给用户的那一层)开发的一种架构模式,M全称是Model,指的是数据模型,V全称是View,指的是视图页面,如JSP.Thymeleaf等,C全称是Controller,指的是控制器,用来处理用户在客户端(浏览器)发起的请求. Spring MVC就是基于MVC模式实现,能够帮你构建像Spring框架那样灵活和松耦合的Web应用程序. 也就是说,Spring MVC是基于Spring…
在项目开发中,除了需要短信验证外,有时候为了节省 短信费也会使用邮件发送.在Spring项目中发送邮件需要封装复杂的消息体,不太方便.而在Spring Boot项目中发送邮件就太简单了,下面一起来看看Spring Boot如何发送邮件. 本文以126邮箱为例进行邮件发送功能,其他邮箱的配置也都大同小异. 1. 获取授权码 常用的电子协议有POP3,SMTP,IMAP,协议的具体区别就不进行详细介绍了.这里选择smtp协议进行演示.登录邮箱,在设置中找到协议地址,点击开启.授权码只会显示一次,需要…
作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11118340.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   邮件的重要性也无需多说了,例如注册验证,消息通知,系统异常提醒等,都离不开邮件的发送. 版本信息 JDK:1.8 SpringBoot :2.1.4.RELEASE maven:3.3.9 IDEA:2019.1.1 mail:2.1.4.RELEASE 使用 本示例演示的是 SpringBoot 项目发送邮…
© 版权声明:本文为博主原创文章,转载请注明出处 实例 1.项目结构 2.pom.xml <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.apache.org…
1.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:schemaLocation="http://maven.apache.org/POM/4…
上一篇文章总结了一下Spring MVC中实现国际化所需的配置,本文继上一文举一个完整的例子,我选择用XML的方式.我的场景是这样的: 访问一个页面时,这个页面有个表格,对表头中的列名实现国际化. 第一步:完成国际化配置 主要是配置用来定位资源文件的消息源和用来解析国际化的国际化解析器,都要配置在Spring的配置文件中 <!--Spring MVC实现国际化 --> <!-- 第一步:配置消息源MessageSource用来加载对应的国际化属性文件:bean的ID名称只能是messag…
http://www.ityouknow.com/springboot/2017/05/09/spring-boot-deploy.html 有很多网友会时不时的问我, Spring Boot 项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下 Spring Boot 如何开发.调试.打包到最后的投产上线. 开发阶段 单元测试 在开发阶段的时候最重要的是单元测试了, Spring Boot 对单元测试的支持已经很完善了. 1.在 pom 包中添加 spring-boot-…
有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发.调试.打包到最后的投产上线. 开发阶段 单元测试 在开发阶段的时候最重要的是单元测试了,springboot对单元测试的支持已经很完善了. 1.在pom包中添加spring-boot-starter-test包引用 <dependency> <groupId>org.springframework.boot</groupI…
有很多网友会时不时的问我, Spring Boot 项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下 Spring Boot 如何开发.调试.打包到最后的投产上线. 开发阶段 单元测试 在开发阶段的时候最重要的是单元测试了, Spring Boot 对单元测试的支持已经很完善了. 1.在 pom 包中添加 spring-boot-starter-test 包引用 <dependency> <groupId>org.springframework.boot&…
目录 一. Sentinel概念 1. 什么是Sentinel? 2. Sentinel功能特性 3. Sentinel VS Hystrix 二. Docker部署Sentinel Dashboard 1. 拉取镜像 2. 启动容器 3. 访问测试 三. Sentinel网关流控 1. 网关流控定义 2. 网关流控规则 3. 导入依赖 4. 网关配置 5. 网关流控客户端标识 6. 测试需求制定 7. Nacos添加网关流控规则 8. 网关流控测试 9. 自定义网关流控异常 四. Sentin…
一.自定义属性 当我们创建一个springboot项目的时候,系统默认会为我们在src/main/java/resources目录下创建一个application.properties.同时也支持yml格式,可以将application.properties 改成application.yml.以下以yml格式作为配置文件格式my: name: yida age: 18 在java文件中读取配置文件的值只需要加@Value(“${属性名}”)@RestControllerpublic class…
spring boot 框架整合 thymeleaf spring boot 的官方文档中建议开发者使用模板引擎,避免使用 JSP.因为若一定要使用 JSP 将无法使用. 注意:本文主要参考学习了大神程序员DD的博客. 附上,相应链接:http://blog.didispace.com/springbootweb/ 关于 thymeleaf 模板引擎的介绍 thymeleaf 学习笔记 同时,模板引擎默认的模板配置路径为:src/main/resources/templates. Spring…
前言 本文是对上一篇博文的扩充,很多平时用不到的特性就开始简略一写,Spring Cloud各版本之间的差距很大的,用不到的可能下一个版本就被kill掉了.由于笔者写本文开始的时候误解了Feign的继承特性,导致实验没有成功,今天是周六加班过程中画了个图,参考了一些资料才得出正确的结果,本人是一边学习一边写的博客做验证,更新估计是快不了了--不多说了,继续Feign的学习. 五. 继承特性 我们发现每次定义Feign调用服务提供者的接口时都要再写一份和所调用的接口方法名参数列表均相同的接口,那么…
Rest (Representational Stat Transer) 是一种软件架构风格. 基础理论 架构特性 性能 可伸缩 简化的统一接口 按需修改 组件通信透明 可移植 可靠性 架构约束 C/S 结构 无状态: Stateless 可缓存 分层系统 按需编码 统一接口: URI , 自描述消息(MIME),超媒体作为应用状态引擎(HATEOAS) WEB MVC MVC 中 URL 与 HTTP 方法的联系 URL 和 HTTP 方法存在联系. 不同方法对应的不同状态, 比如: http…
前面已经介绍了很多zuul的功能,本篇继续介绍它的另一大功能.在高并发的应用中,限流往往是一个绕不开的话题.本文详细探讨在Spring Cloud中如何实现限流. 在 Zuul 上实现限流是个不错的选择,只需要编写一个过滤器就可以了,关键在于如何实现限流的算法.常见的限流算法有漏桶算法以及令牌桶算法.这个可参考 https://www.cnblogs.com/LBSer/p/4083131.html ,写得通俗易懂,你值得拥有,我就不拽文了. GoogleGuava 为我们提供了限流工具类 Ra…
说明 用于分布式上所有微服务都连接到消息总线上面.进行统一的通知 Config动态刷新 configClient configClient通过/actuator/bus-refresh端点通知消息总线 消息总线通知线上的所有服务实例 调用/actuator/refresh端点进行配置更新 configClient改造 1.增加bus pom依赖 <!--根据消息总线实现所有服务配置刷新--> <dependency> <groupId>org.springframewo…
Ribbon是什么? Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起.Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等.简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随即连接等)去连接这些机器.我们也很容易使用Ribbon实现自定义的负载均衡算法. LB方案分类 目前主流的LB方案可分成两类:一种是集中式LB, 即在服…
上文介绍了服务如何通过Eureka实现注册,以及如何从Eureka获取已经注册的服务列表.那么拿到注册服务列表后, 如何进行服务调用?一个简单的实现是可以从被调用服务的实例列表中选择一个服务实例,通过其hostname(或IP),端口,及API的路径拼接成完整的url,通过http client来完成调用.但生产环境中,为了高性能.高可用等要素,服务的调用一般涉及负载均衡.故障转移.失败重试等实现,因此引入实现这些功能的客户端组件也成为了微服务架构中的必备要素.Spring Cloud中可通过R…
一.前言 SpringBoot+Shiro+Mybatis完成的. 之前看了一位小伙伴的Shiro教程,跟着做了,遇到蛮多坑的(´இ皿இ`) 修改整理了一下,成功跑起来了.可以通过postman进行测试 不多比比∠( ᐛ 」∠)_,直接上源码:https://github.com/niaobulashi/spring-boot-learning/tree/master/spring-boot-20-shiro 二.Shiro是啥 Apache Shiro是一个功能强大.灵活的.开源的安全框架.可…
Zuul的核心 Filter是Zuul的核心,用来实现对外服务的控制.Filter的生命周期有4个,分别是“PRE”.“ROUTING”.“POST”.“ERROR”,整个生命周期可以用下图来表示. Zuul大部分功能都是通过过滤器来实现的,这些过滤器类型对应于请求的典型生命周期. PRE: 这种过滤器在请求被路由之前调用.我们可利用这种过滤器实现身份验证.在集群中选择请求的微服务.记录调试信息等. ROUTING:这种过滤器将请求路由到微服务.这种过滤器用于构建发送给微服务的请求,并使用Apa…