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. [Js]布局转换

    为什么要布局转换? 要这样的效果,单写css,只要给每个li浮动就行,不需要绝对定位.但是比如做一些效果(如鼠标移入图片变大),就需要改变位置了.直接给每个li在css上定好位置不方便,也不知道有几个 ...

  2. cordova 5.0 白名单

    最新的cordova 5.0 更新了白名单机制,增强了安全性,但是也给我们在开发中带来了很多问题: 当你引入谷歌.百度地图时,会出现 Failed to load resource -- 解决办法: ...

  3. 单位服务器发布tomcat的项目外网访问

    首先 要有 外网IP  路由器做设置  开放端口(netstat -nao) 首先你要确定你有一个外网ip地址.如果你分配到的是一个局域网IP地址需要经过一系列的转换为外网ip地址 跟部署tomcat ...

  4. Cisco IOS Debug Command Reference Command E through H

    debug eap through debug he-module subslot periodic debug eap : to display information about Extensib ...

  5. MATLAB中mexFunction函数的接口规范(转载)

    MEX文件的调用极为方便,其调用方式与MATALAB的内建函数完全相同,只需要在命令窗口内输入对应的文件名称即可. C语言MEX程序代码文件有计算子例程(Computational routine)和 ...

  6. App Store--心酸的上线路,说说那些不可思议的被拒理由

    yoyeayoyea 您的应用包括色情内容(色情交易,色情展示). 原因是我们的销售人员,把几张艺术照放在个人相册里(头像),换成卡通头像,通过.    颜小风 被拒很正常 一次通过不正常. 之前上线 ...

  7. Controller方法的返回值

    方法的返回值1.ModelAndView这个就不多说,这是最基础的,前面定义一个ModelAndView,中途使用addObject方法添加属性,再返回.视图解析器会自动扫描到的.2.String这个 ...

  8. UIControlEvents 中各种event被触发的方式解释(zz)

    转自:http://blog.csdn.net/yanxiaoqing/article/details/7108891 在控件事件中,简单解释下下面几个事件.说明:由于是在“iOS 模拟器”中测试的, ...

  9. NSString和data转换

    NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); NS ...

  10. jQuery中 判断事件

    $('button.top').on('mousedown', function() { var $this = $(this); if ($this.hasClass('settop')) { $t ...