基于Spring框架的Web应用开发笔记 - Outline
Motivation
最近的工作涉及Web框架搭建,在了解公司原有采用框架基础上对Web开发技术栈做了一次升级,在次做记录。
Audience
J2EE Web Application Developer, Spring user,
Scope
快速应用开发、Web层+安全、持久层
Progress
2015/6/14 init
2015/07/25 move to an real application, see A candidate solution for Java Web Application - current session(http://www.cnblogs.com/zhoujiagen/p/4678792.html)
2015/10/15 不得行了,得有点微观架构性的认识了,先从Spring context加载资源、bean定义等开始吧。
Outline
1 用Spring Boot快速开发应用
2 Spring的Web框架和Security横切面
3 Spring Data:通用数据持久化解决方案
Content
1 用Spring Boot快速开发应用
1.1 基本概念
(1) spring boot starters
聚合常用的一组依赖成单个依赖,可一添加到Maven或Gradle build中
一些常见的starter,注意starter之间存在一些包含引用关系:
spring-boot-starter
spring-boot-starter-test
spring-boot-starter-web
spring-boot-starter-freemarker
spring-boot-starter-tomcat
spring-boot-starter-security
spring-boot-starter-log4j
spring-boot-starter-logging
spring-boot-starter-jdbc
spring-boot-starter-data-jpa
spring-boot-starter-redis
(2) autoconfiguration
借助Spring4的条件化配置,合理的猜测应用中所需的bean、并做自动配置
原理:Environment/Conditional Bean的引入
两种方式:classpath中jar包的引用、starter触发自动配置
(a) Spring MVC Thymeleaf模板视图
一般需要配置:ThymeleafViewResolver, SpringTemplateEngine, TemplateResolver
将其jar包放到classpath中,Spring Boot检测到后,会做出你使用Thymeleaf视图、并自动配置这些bean
(b) web starter
将web starter添加到依赖中后,Spring Boot检测到后,将配置一些bean以支持Spring MVC:view resovler, resource handler, message converters。
(3) command-line interface(CLI)
借助Groovy和自动配置,进一步简化Spring应用开发
(4) actuator
给Spring Boot应用添加一些管理特征
2 Spring的Web框架和Security横切面
抛开MVC设计模式引入的影响不谈,Spring引入的JavaConfig、Servlet3.0带来的WebApplicationInitializer去web.xml、应用XML配置给开发工作带来了极大的便利。
@RestController、ContentNegotiatingViewResolver的引入为开发REST应用提供了便利。
Spring Security提供了Web安全考虑的一个基本实现。
后续的Spring Session则会带来Web Session处理的一个通用性解决方案。
TODO add more descriptive examples
3 Spring Data:通用数据持久化解决方案
熊心勃勃的Spring项目,期望提供RDBMS、NoSQL数据库访问的一致性解决方案。
因主要采用JPA 2.1,这里只会讨论spring-data-jpa。
TODO add more descriptive examples
References
[1] Spring in Action, 4th Edition
[2] Spring Framework Reference Documentation[4.1.6.RELEASE].pdf
[3] Spring Boot Reference Guide[1.2.4.RELEASE].pdf
[4] Spring Security Reference[4.0.1.RELEASE]
[5] Spring Data JPA - ReferenceDocumentation[1.8.0.RELEASE].pdf
基于Spring框架的Web应用开发笔记 - Outline的更多相关文章
- 基于Spring MVC的Web应用开发(三) - Resources
基于Spring MVC的Web应用开发(3) - Resources 上一篇介绍了在基于Spring MVC的Web项目中加入日志,本文介绍Spring MVC如何处理资源文件. 注意到本项目的we ...
- 使用NetBeans搭建基于Spring框架的Web应用
NetBeans下载链接:https://netbeans.org/. 第一步:选择“文件”菜单下的“新建项目”: 第二步:类别选择“Java Web”,项目选择“Web应用程序”,单击“下一步”: ...
- 基于Spring框架应用的权限控制系统的研究和实现
摘 要: Spring框架是一个优秀的多层J2EE系统框架,Spring本身没有提供对系统的安全性支持.Acegi是基于Spring IOC 和 AOP机制实现的一个安全框架.本文探讨了Acegi安全 ...
- Java基于ssm框架的restful应用开发
Java基于ssm框架的restful应用开发 好几年都没写过java的应用了,这里记录下使用java ssm框架.jwt如何进行rest应用开发,文中会涉及到全局异常拦截处理.jwt校验.token ...
- 构建一个基于 Spring 的 RESTful Web Service
本文详细介绍了基于Spring创建一个“hello world” RESTful web service工程的步骤. 目标 构建一个service,接收如下HTTP GET请求: http://loc ...
- 如何快速搭建一个基于ServiceStack框架的web服务
ServiceStack是一个高性能的.NET Web Service 平台,能够简化开发高性能的REST (支持JSON,XML,JSV,HTML,MsgPack,ProtoBuf,CSV等消息格式 ...
- web前端开发笔记(1)
一.HTML标签书写有哪些规范? 页面编码. 文档声明. 关键字与描述. 行内元素不能包含块级元素. a标签不能嵌套a标签. 标签名和属性必须用小写字母书写,属性必须加引号,标签必须闭合,单标签页必 ...
- SZhe_Scan碎遮:一款基于Flask框架的web漏洞扫描神器
SZhe_Scan碎遮:一款基于Flask框架的web漏洞扫描神器 天幕如遮,唯我一刀可碎千里华盖,纵横四海而无阻,是谓碎遮 --取自<有匪> 写在前面 这段时间很多时间都在忙着编写该项目 ...
- 【基于spark IM 的二次开发笔记】第一天 各种配置
[基于spark IM 的二次开发笔记]第一天 各种配置 http://juforg.iteye.com/blog/1870487 http://www.igniterealtime.org/down ...
随机推荐
- Disaster Recovery, High Availability, and Continuous Availability - What's the Difference?
Disaster Recovery, High Availability, and Continuous Availability - What's the Difference? Posted by ...
- ACM心情总结
已经快要12点了,然而还有5000字概率论论文没有动.在论文里,我本来是想要总结一下ACM竞赛中出现过的概率论题目,然而当敲打第一段前言的时候,我就迟疑了. 我问自己,ACM竞赛到底有什么现实意义. ...
- 第46套题【STL】【贪心】【递推】【BFS 图】
已经有四套题没有写博客了.今天改的比较快,就有时间写.今天这套题是用的图片的形式,传上来不好看,就自己描述吧. 第一题:单词分类 题目大意:有n个单词(n<=10000),如果两个单词中每个字母 ...
- Spring对jdbc的支持
Spring对jdbc技术提供了很好的支持. 体现在: 1)Spring对c3p连接池的支持很完善: 2)Spring对jdbc提供了JdbcTemplate,来简化jdbc操作: 1.使用步骤 1) ...
- [ASP.NET] 使用Loading遮罩防止使用者重複點擊
From: http://www.dotblogs.com.tw/joysdw12/archive/2012/12/13/85629.aspx 前言 在網頁執行中可能會因為資料量大或其他原因影響使用者 ...
- Rhel6-heartbeat+lvs配置文档
系统环境: rhel6 x86_64 iptables and selinux disabled 主机: 192.168.122.119 server19.example.com 192.168.12 ...
- CCNA 6.6
sh run (show running-config) enable disable login logout exit end enable password privilege level(g ...
- android textview 跑马灯
<TextView android:layout_width="match_parent" android:layout_height="48dp" an ...
- 使用generator自动生成mybatis model、mapper.xml、mapper等(转)
原文链接:http://www.cnblogs.com/lichenwei/p/4145696.html Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件 ...
- C# HttpBrowser 跨进程访问,解决内存泄露问题
#undef DEBUG using Microsoft.Win32; using Newtonsoft.Json; using System; using System.Collections.Ge ...