基于Spring框架的Web应用开发笔记 - incomplete

Motivation

最近的工作涉及Web框架搭建,在了解公司原有采用框架基础上对Web开发技术栈做了一次升级,在次做记录。

Audience

J2EE Web Application Developer, Spring user,

Scope

快速应用开发、Web层+安全、持久层

Progress

2015/6/14 init

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

时间: 2025-01-02 18:55:15

基于Spring框架的Web应用开发笔记 - incomplete的相关文章

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

基于Spring MVC的Web应用开发(3) - Resources 上一篇介绍了在基于Spring MVC的Web项目中加入日志,本文介绍Spring MVC如何处理资源文件. 注意到本项目的web.xml配置的DispatcherServlet对应的url-pattern为"/",即所有的URL请求都会经过 Spring MVC的处理.实际的Web项目有大量的资源文件,如javascript文件,css文件,png,jpg等图片文件,甚至是Flash等等,我们没有 必要对这些静态

【框架】[Spring] 基于Spring框架的Web应用演示(附带cglib工具进行动态代理)

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 前言: Spring也差不多学了Ioc控制反转和实现AOP技术的两种方式了,分享一个学习Spring,用来入门挺好的例子. 如果你是刚刚学习Spring,那么此实例应该可以很好的帮助你应用Spring到Web项目中. 里面的DAO层-提交数据库的事务我并没有使用Spring 的注解功能,而是用spring的AOP来实现的.这样更灵活,其实,框架为我们做的事越多,我们就越受框架的约束

Spring boot 基于Spring MVC的Web应用和REST服务开发

Spring Boot利用JavaConfig配置模式以及"约定优于配置"理念,极大简化了基于Spring MVC的Web应用和REST服务开发. Servlet: 1 package org.windwant.spring.servlet; 2 3 import javax.servlet.Servlet; 4 import javax.servlet.ServletConfig; 5 import javax.servlet.ServletException; 6 import j

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

Java基于ssm框架的restful应用开发 好几年都没写过java的应用了,这里记录下使用java ssm框架.jwt如何进行rest应用开发,文中会涉及到全局异常拦截处理.jwt校验.token拦截器等内容. 1.jwt工具类 直接贴代码了,主要包括jwt的sign.verify.decode三个方法,具体实现如下: package com.isoft.util; import java.util.Date; import com.auth0.jwt.JWT; import com.aut

web前端开发笔记(2)

web前端开发笔记(1) 一.HTML标签书写有哪些规范? 页面编码. 文档声明. 关键字与描述. 行内元素不能包含块级元素. a标签不能嵌套a标签. 标签名和属性必须用小写字母书写,属性必须加引号,标签必须闭合,单标签页必须闭合. 页面中不要用 进行缩进,如需缩进,用css控制. html标签使用必须语义化. 要为img标签填写alt和title属性. 二.HTML静态页面出现中文乱码如何解决? 引入<meta charset="UTF-8"> 三.通常情况下块属性标签和

构建一个基于 Spring 的 RESTful Web Service

本文详细介绍了基于Spring创建一个“hello world” RESTful web service工程的步骤. 目标 构建一个service,接收如下HTTP GET请求: http://localhost:8080/greeting 并返回如下JSON格式的问候语: {"id":1,"content":"Hello, World!"} 你也可以通过指定查询字符串中的可选参数name来定制问候语: http://localhost:8080

基于spring mvc 移动终端后台开发

基于spring mvc 移动终端后台开发 研发背景 到年底了,很多项目都要突击完成,我们自己的"问题及知识管理平台"移动端研发也到了不能再拖的地步,所以需要在后台集成移动端框架.由于后台架构采用spring mvc+hibernate,并且近期也深入的研究过spring mvc,所以就不想沿用已有成熟的整合方案<HTML5企业移动应用解决方案V1.0.doc>,尝试完全应用spring framework技术实现移动端后台架构. 根据技术特点和我的一些架构封装想法,给自己

基于Spring框架的Shiro配置

一.在web.xml中添加shiro过滤器 Xml代码   <!-- Shiro filter--> <filter> <filter-name>shiroFilter</filter-name> <filter-class> org.springframework.web.filter.DelegatingFilterProxy </filter-class> </filter> <filter-mapping&g

Web前端开发笔记整理

web前端开发笔记: 1.web前端之html_day1 2.web前端之html_day2 3.web前端之css_day1