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. eclipse debug时老提示edit source lookup path解决方案

    用myeclipse debug web应用的时候,总提示edit source lookup path,每次都得手动选择项目,费时费力.在网上终于找到了方法. 搬运:http://www.educi ...

  2. Android统计图表MPAndroidChart.

    Android统计图表MPAndroidChart MPAndroidChart是在Android平台上开源的第三方统计图表库,可以绘制样式复杂.丰富的各种统计图表,如一般常见的折线图.饼状图.柱状图 ...

  3. 关于JavaScript是否会阻塞图片加载

    <?php //1.js.php sleep(5); file_put_contents("tmp.txt", __FILE__.'->'.__LINE__.' -&g ...

  4. Oracle 11g 安装

    1.Oracle 11g安装: http://www.cnblogs.com/qianyaoyuan/archive/2013/05/05/3060471.html 2.安装完Oracle数据库,给s ...

  5. JavaScript去除数组中的重复性

    Array.prototype.unique = function () { var res = [], hash = {}; for (var i = 0, elem; (elem = this[i ...

  6. wp8.1 Study11:APP里文件读写和使用XML和Json序列化

    一.文件读写 1.基本操作(使用FileIO API) 这个方法在上一个stduy已经学过,那么贴出来复习下,代码如下: private async void writeTextToLocalStor ...

  7. sql思维

    写sql的思路不同于常规编程语言(C.python)等等.前者,考虑如何一步步地得到最终答案:后者,考虑如何一步步地收缩数据范围. 简而言之,前者是面向过程化(for each row do x),后 ...

  8. android 通知栏 notifcation

    http://blog.csdn.net/guolin_blog/article/details/50945228  郭神的博客 final NotificationManager manager = ...

  9. fragment 添加menu

    http://bbs.51cto.com/thread-1091458-1-1.html 有详解 @Override public void onCreate(Bundle savedInstance ...

  10. raspbian 静态IP

    edit file:  /etc/network/interfaces change line: iface eth0 inet dhcp iface eth0 inet static address ...