Spring Security RememberMe
下面的源码基于Spring Security 4.0.3
版本。
WebSecurityConfiguration
的目的是配置WebSecurity
来创建[FilterChainProxy][FilterChainProxy]
|
|
系统长时间运行,但是没有人使用后,再次使用时会无法连接上数据库,会报类似这样的错误
org.hibernate.util.JDBCExceptionReporter: The last packet successfully received from the server was 56697 seconds ago. The last packet sent successfully to the server was 56697 seconds ago, which is longer than the server configured value of ‘wait_timeout’. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property ‘autoReconnect=true’ to avoid this problem.
Java相对于其他的一些开发语言来说,修改代码后经常需要重新编译代码,重启服务器等等,这些动作非常的耗时间,降低了不少生产效率,所以热部署一直是Java的开发人员所追求的。从JRebel到Spring Loader,它们都可以达到JVM的Hot Swapping的目的。但是针对类似Spring这样需要在服务器启动时初始化一些容器配置的项目,还是不得不把大量的时间花在重启服务器上。
核心库应该有两个无限生命周期的分支:
我们把origin/master
分支作为production主分支,它的HEAD版本的代码总是处于随时可以release的状态。
我们把origin/develop
分支作为develop主分支,它的HEAD版本的代码总是处于最新的交付的开发状态。有时候也称之为集成分支。这也分支也是构建每日的晚间快照版本的来源。
当develop
分支的源码达到一个稳定的状态并且准备release的时候,所有的修改应该合并回master
分支,然后做一个release序号的标记(tag)。
所以,当每次修改合并回master
的时候,就是一个新的production release版本。所以理论上,我们可以使用一个Git钩子脚本来进行自动构建然后发布到我们的生产环境。
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。
|
|
当尝试从配有配置TLS的Registry会报如下错
|
|
敏捷的Web框架,应该至少做到开箱即用,开发时不依赖任何外部数据库和外部的服务器是最理想的。
Spring Boot基于Spring平台,涉及到了构建一个Java Web项目的大部分方面,是一个非常好的选择。只要简单的声明依赖,便可支持基于Spring各种特性。Web层基于Spring MVC,持久层支持JPA,Spring Data JPA,View层支持Freemarker等模板语言,支持Message、Application properties,支持日志,支持多个环境的Profile,安全方面支持Spring Security等等。Spring Boot把Spring的各个项目无缝的结合在一起,可以统一的使用Application properties对它们进行配置。