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的更多相关文章

  1. 基于Spring MVC的Web应用开发(三) - Resources

    基于Spring MVC的Web应用开发(3) - Resources 上一篇介绍了在基于Spring MVC的Web项目中加入日志,本文介绍Spring MVC如何处理资源文件. 注意到本项目的we ...

  2. 使用NetBeans搭建基于Spring框架的Web应用

    NetBeans下载链接:https://netbeans.org/. 第一步:选择“文件”菜单下的“新建项目”: 第二步:类别选择“Java Web”,项目选择“Web应用程序”,单击“下一步”: ...

  3. 基于Spring框架应用的权限控制系统的研究和实现

    摘 要: Spring框架是一个优秀的多层J2EE系统框架,Spring本身没有提供对系统的安全性支持.Acegi是基于Spring IOC 和 AOP机制实现的一个安全框架.本文探讨了Acegi安全 ...

  4. Java基于ssm框架的restful应用开发

    Java基于ssm框架的restful应用开发 好几年都没写过java的应用了,这里记录下使用java ssm框架.jwt如何进行rest应用开发,文中会涉及到全局异常拦截处理.jwt校验.token ...

  5. 构建一个基于 Spring 的 RESTful Web Service

    本文详细介绍了基于Spring创建一个“hello world” RESTful web service工程的步骤. 目标 构建一个service,接收如下HTTP GET请求: http://loc ...

  6. 如何快速搭建一个基于ServiceStack框架的web服务

    ServiceStack是一个高性能的.NET Web Service 平台,能够简化开发高性能的REST (支持JSON,XML,JSV,HTML,MsgPack,ProtoBuf,CSV等消息格式 ...

  7. web前端开发笔记(1)

     一.HTML标签书写有哪些规范? 页面编码. 文档声明. 关键字与描述. 行内元素不能包含块级元素. a标签不能嵌套a标签. 标签名和属性必须用小写字母书写,属性必须加引号,标签必须闭合,单标签页必 ...

  8. SZhe_Scan碎遮:一款基于Flask框架的web漏洞扫描神器

    SZhe_Scan碎遮:一款基于Flask框架的web漏洞扫描神器 天幕如遮,唯我一刀可碎千里华盖,纵横四海而无阻,是谓碎遮 --取自<有匪> 写在前面 这段时间很多时间都在忙着编写该项目 ...

  9. 【基于spark IM 的二次开发笔记】第一天 各种配置

    [基于spark IM 的二次开发笔记]第一天 各种配置 http://juforg.iteye.com/blog/1870487 http://www.igniterealtime.org/down ...

随机推荐

  1. Disaster Recovery, High Availability, and Continuous Availability - What's the Difference?

    Disaster Recovery, High Availability, and Continuous Availability - What's the Difference? Posted by ...

  2. ACM心情总结

    已经快要12点了,然而还有5000字概率论论文没有动.在论文里,我本来是想要总结一下ACM竞赛中出现过的概率论题目,然而当敲打第一段前言的时候,我就迟疑了. 我问自己,ACM竞赛到底有什么现实意义. ...

  3. 第46套题【STL】【贪心】【递推】【BFS 图】

    已经有四套题没有写博客了.今天改的比较快,就有时间写.今天这套题是用的图片的形式,传上来不好看,就自己描述吧. 第一题:单词分类 题目大意:有n个单词(n<=10000),如果两个单词中每个字母 ...

  4. Spring对jdbc的支持

    Spring对jdbc技术提供了很好的支持. 体现在: 1)Spring对c3p连接池的支持很完善: 2)Spring对jdbc提供了JdbcTemplate,来简化jdbc操作: 1.使用步骤 1) ...

  5. [ASP.NET] 使用Loading遮罩防止使用者重複點擊

    From: http://www.dotblogs.com.tw/joysdw12/archive/2012/12/13/85629.aspx 前言 在網頁執行中可能會因為資料量大或其他原因影響使用者 ...

  6. Rhel6-heartbeat+lvs配置文档

    系统环境: rhel6 x86_64 iptables and selinux disabled 主机: 192.168.122.119 server19.example.com 192.168.12 ...

  7. CCNA 6.6

    sh run (show running-config) enable disable login logout exit end  enable password privilege level(g ...

  8. android textview 跑马灯

    <TextView android:layout_width="match_parent" android:layout_height="48dp" an ...

  9. 使用generator自动生成mybatis model、mapper.xml、mapper等(转)

    原文链接:http://www.cnblogs.com/lichenwei/p/4145696.html Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件 ...

  10. C# HttpBrowser 跨进程访问,解决内存泄露问题

    #undef DEBUG using Microsoft.Win32; using Newtonsoft.Json; using System; using System.Collections.Ge ...