Spring MVC 4快速入门Maven原型已改进
Spring Boot使Spring入门非常容易。 但是仍然有人对不使用Spring Boot并以更经典的方式引导应用程序感兴趣。 几年前,我创建了一个原型(早于Spring Boot),简化了引导Spring Web应用程序的过程。 尽管Spring Boot已经上市了一段时间,但是Spring MVC 4 Quickstart Maven Archetype在GitHub上仍然很受欢迎。 我希望最近有了一些补充,它会更好。
Java 8
我已经决定将目标平台切换为Java8。在生成的项目中还没有特定的Java 8代码,但是我相信所有新的Spring项目都应该从Java 8开始。Java 8的采用超出了预期。 看看: https : //typesafe.com/company/news/survey-of-more-than-3000-developers-reveals-java-8-adoption-ahead-of-previous-forecasts
介绍Spring IO平台
Spring IO平台将核心Spring API整合到了一个用于现代应用程序的紧密结合的平台中。 。 主要优势在于,它通过提供Spring项目的版本以及经过测试并已知可以协同工作的依赖项,简化了依赖项管理。
以前,所有依赖项都是手动指定的,解决版本冲突需要一些时间。 使用Spring IO平台,我们必须仅更改平台版本(当然还要注意平台外部的依赖性):
<dependencyManagement><dependencies><dependency><groupId>io.spring.platform</groupId><artifactId>platform-bom</artifactId><version>${io.spring.platform-version}</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
现在可以使用依赖项,而无需在POM中指定version
:
<!-- Spring -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId>
</dependency>
<!-- Security -->
<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-config</artifactId>
</dependency>
<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId>
</dependency>
Java安全性配置
当我第一次创建原型时,无法使用Java代码配置Spring Security。 但是现在是了,所以我将XML配置迁移到Java配置。
SecurityConfig
现在从WebSecurityConfigurerAdapter
扩展,并用@Configuration
和@EnableWebMvcSecurity
批注标记。
安全配置详细信息
限制访问除以下以外的每个URL
XML配置:
<security:intercept-url pattern="/" access="permitAll" />
<security:intercept-url pattern="/resources/**" access="permitAll" />
<security:intercept-url pattern="/signup" access="permitAll" />
<security:intercept-url pattern="/**" access="isAuthenticated()" />
成为:
http.authorizeRequests().antMatchers("/", "/resources/**", "/signup").permitAll().anyRequest().authenticated()
登录/注销
XML配置:
<security:form-login login-page="/signin" authentication-failure-url="/signin?error=1"/>
<security:logout logout-url="/logout" />
成为:
http.formLogin().loginPage("/signin").permitAll().failureUrl("/signin?error=1").loginProcessingUrl("/authenticate").and().logout().logoutUrl("/logout").permitAll().logoutSuccessUrl("/signin?logout");
记住账号
XML配置:
<security:remember-me services-ref="rememberMeServices" key="remember-me-key"/>
成为:
http.rememberMe().rememberMeServices(rememberMeServices()).key("remember-me-key");
CSRF已启用用于生产而已禁用以进行测试
当前默认情况下启用CSRF,因此不需要其他配置。 但是在进行集成测试时,我想确保CSRF被禁用。 我找不到执行此操作的好方法。 我从传递给CsrfConfigurer
CSRF保护匹配器开始,但是最后得到了很多我不希望在SecurityConfiguration
拥有的代码。 我最终得到了一个NoCsrfSecurityConfig
,它从原始SecurityConfig
扩展并禁用了CSRF:
@Configuration
public class NoCsrfSecurityConfig extends SecurityConfig {@Overrideprotected void configure(HttpSecurity http) throws Exception {super.configure(http);http.csrf().disable();}
}
连接池
HikariCP现在用作生成的应用程序中的默认连接池。 使用默认配置:
@Bean
public DataSource configureDataSource() {HikariConfig config = new HikariConfig();config.setDriverClassName(driver);config.setJdbcUrl(url);config.setUsername(username);config.setPassword(password);config.addDataSourceProperty("cachePrepStmts", "true");config.addDataSourceProperty("prepStmtCacheSize", "250");config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");config.addDataSourceProperty("useServerPrepStmts", "true");return new HikariDataSource(config);
}
还有更多
Spring MVC 4快速入门Maven原型还远远没有完成。 由于Spring平台涉及原型,因此必须进行相应调整。 我很期待听到可以做些什么来使其成为一个更好的项目。 如果有想法或建议,请在GitHub上发表评论或创建问题。
参考文献
- Spring MVC 4快速入门Maven原型
翻译自: https://www.javacodegeeks.com/2014/12/spring-mvc-4-quickstart-maven-archetype-improved.html
Spring MVC 4快速入门Maven原型已改进相关推荐
- Spring MVC 4快速入门Maven原型得到了改进–更多Java 8功能
对于所有有兴趣在没有Spring Boot的情况下快速引导Spring 4应用程序的开发人员,请检查刚刚更新的我的Spring MVC 4 Quickstart Maven原型. 原型已经将Java ...
- Spring MVC 教程,快速入门,深入分析
目录 转载自:http://elf8848.iteye.com/blog/875830 资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf 点击打开链接 SpringMVC核 ...
- Spring MVC 教程,快速入门,深入分析【转】
2019独角兽企业重金招聘Python工程师标准>>> 转自:赵磊 地址:http://elf8848.iteye.com 目录 一.前言 二.spring mvc 核心类与接口 ...
- Spring MVC 教程,快速入门,深入分析——多视图控制器
十八.多视图控制器 当有jsp,flt (模板)等多种页面生成展示方式时,spring默认使用的是"视图解析器链". 真是一个链,所以性能不好,spring会在"视图解析 ...
- 如何:从Spring 4.0快速入门以构建简单的REST-Like API(演练)
如何:从Spring 4.0快速入门以构建简单的REST-Like API(演练) 关于使用Spring MVC创建Web API的另一篇教程. 不太复杂. 只是一个演练. 生成的应用程序将提供简单的 ...
- SpringMVC:学习笔记(1)——理解MVC及快速入门
SprigMVC-理解MVC及快速入门 说明: 传统MVC-->JSPModel2-->Front Controller + Application Controller + Page C ...
- Spring学习(1)——快速入门
Spring学习(1)--快速入门 认识 Spring 框架 Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (Inversion of Co ...
- Spring Boot的快速入门
Spring Boot的快速入门 1.导入第一个maven项目 自动生成maven项目 2.了解maven项目结构 3.启动服务 和普通maven项目结构是一样的,值得注意的是,启动服务的入口是 ![ ...
- Spring Boot【快速入门】
Spring Boot 概述 Build Anything with Spring Boot:Spring Boot is the starting point for building all Sp ...
最新文章
- 奥比中光Gemini 3D双目结构光深度相机在Android平台上深度数据噪点非常多的问题
- php可以做ios程序吗,php写的可以在本机发送iOS push程序
- java 线程包_Java 多线程——工具包
- 大数据学习笔记04:单机模式使用ZooKeeper
- Spring Boot 第一个程序
- li鼠标悬浮手势样式
- IT人母亲的美国之行(8)
- C语言实现贪吃蛇小游戏
- 如何认识会计科目,看懂财务报表?
- xp系统无法访问计算机,xp系统Workgroup无法访问怎么解决
- vmware虚拟机连接服务器超时,vmware连接远程服务器超时
- IDE——jupyter的安装与卸载
- @18. 自幂数、水仙花数、四叶玫瑰数等等是什么?
- 王者荣耀 微信登录 服务器找不到,王者荣耀微信登录失败怎么办 王者荣耀微信登录失败解决办法...
- Vue.js面试题整理
- 系统性能优化策略 -- 持续优化更新
- 关于OSPF的五种报文类型介绍、OSPF八种状态机变化与报文交互介绍。
- 完美解决前端无法上传大文件方法
- Gradient Accumulation 梯度累加 (Pytorch)
- 【展馆设计】互动多媒体投影有哪些实用价值
热门文章
- java面向对象高级分层实例_数据库操作类
- RBAC(基于角色的权限访问控制)
- linux软件可以在所有发行版运行吗,Linux通用的跨发行版的3大软件包管理器
- (转)Elasticsearch 聚合查询、桶聚合、管道聚合及复合查询
- ES6 Map对象的使用
- MySQL 对于千万级的大表要怎么优化?
- quarkus_使用Quarkus调试容器中的系统测试(视频)
- java oca_OCA第6部分中的Java难题
- djl和ljl_使用Spring Boot和DJL进行深度学习
- 单元测试junit参数_使用Junit参数在更少的时间内编写更好的单元测试