Spring中文开发详细手册

合集下载

Springside技术参考手册

Springside技术参考手册

Springside 3.3.2 技术参考手册1. 总述∙架构风格简述1.概述技术框架选型以工业化大规模软件开发为原则---主流的选型、适宜团队分工的架构,同时照顾轻量级快速开发的需求,Java版的约定大于配置的风格。

)在SpringSide的官方主页上,写着SpringSide 3 中包含的主流组件:Spring 2.5 + Hibernate 3 + Struts 2 + JSP 2.0 + JQuery + JAX-WS 2 (by Apache CXF 2) +SpringSecurity 2.0。

不过,如果你认为和SpringSide 2 相比,升级的只是版本号,那么你就大错特错了。

像我这样从SpringSide 2过来的人,如果能够详细对比SpringSide 2 和SpringSide 3,对于我们理解SpringSide 3肯定更加有帮助。

下面的内容是我自己的一些体会,不正确的地方欢迎大家指正。

从主要的架构来,依然是那么几层,先设计数据库,再写Entity层,再写Dao层,再写Action,然后使用JSP表现出来,其中的Entity和Dao层和Hibernate紧密相关,Action是Struts的主要部分,Spring作为粘合剂,把这些东西连在一起,并提供了一些机制简化编写这些层的工作。

SpringSide就是这样一个大的粘合体,省去了我们自己很多的粘合工作。

从SpringSide 2 到SpringSide 3,这些工作得到进一步的简化,我们开发起来就更爽了。

我认为,我们的开发模式,主要经历了这样的简化过程:第一阶段,代码加一大堆的配置文件第二阶段,代码加少量的配置文件第三阶段,代码加基本上等于零的配置文件这些进步是如何实现的呢?从第一阶段到第二阶段,主要靠的是Annotation,把一些大量的配置工作转移到了Java代码中,那么从第二阶段到第三阶段怎么实现呢?都已经Annotation了,你还有什么办法让配置文件更少?想不到吧!我也想不到,直到我看了SpringSide 3生成的项目,我才知道还有一个好东西叫自动扫描。

spring-3.1.0中文版api帮助文档

spring-3.1.0中文版api帮助文档

Spring 3.x权威开发指南:实施Java EE 6的利器2011年8月31日目录序 (VIII)前言 (X)1借助Spring 3.1实施Java EE 6 (1)1.1Java EE 6编程模型讨论 (1)1.1.1Java EE 6够敏捷,No! (1)1.1.2盘旋于具体与抽象之间 (2)1.2挖掘Spring 3.1的架构价值 (3)1.2.1精耕细作于Java EE 6平台 (3)1.2.2面向Spring的SpringSource Tool Suite集成开发工具 (3)1.2.3全面拥抱OSGi 4.2 (4)1.2.4开发者决定一切 (4)1.3下载及构建Spring 3.1 (5)1.3.1下载Spring 3.1正式发布版 (5)1.3.2基于SVN库持续构建Spring源码 (6)1.4小结 (7)2控制反转容器 (8)2.1DI及Spring DI概述 (8)2.1.1面向Java ME/Java SE的BeanFactory (8)2.1.2面向Java EE的ApplicationContext (9)2.2多种依赖注入方式 (9)2.2.1设值注入 (9)2.2.2构建器注入 (11)2.2.3属性注入 (12)2.2.4方法注入 (12)2.3借助Autowiring策略智能注入协作者 (13)2.3.1<bean/>元素的autowire属性 (13)2.3.2基于@Required注解加强协作者管理 (14)2.3.3基于@Autowired或@Inject注解的另一Autowiring策略 (16)2.3.4借助primary属性或@Qualifier注解细粒度控制Autowiring策略 (16)2.4资源操控 (19)2.5将DI容器宿主到Web容器中 (19)2.6外在化配置应用参数 (19)2.7Spring受管Bean的作用范围 (19)2.8Bean Validation集成支持 (19)2.9回调接口集合及触发顺序 (19)2.10<util/>命名空间 (20)2.11值得重视的若干DI特性 (20)2.11.1depends-on属性 (20)2.11.2别名(Alias) (20)2.11.3工厂Bean和工厂方法 (20)2.11.4<p/>命名空间 (21)2.11.5抽象和子Bean (21)2.12基于注解(Annotation)方式配置DI容器 (21)2.13Spring表达式语言(SpEL)支持 (22)2.13.1核心接口及类 (22)2.13.2基于API方式使用 (22)2.13.3基于XML方式使用 (22)2.13.4基于Annotation注解使用 (22)2.13.5SpEL语法速查 (22)2.14回调接口集合及其触发顺序 (22)2.14.1BeanNameAware回调接口 (22)2.14.2BeanClassLoaderAware回调接口 (23)2.14.3BeanFactoryAware回调接口 (23)2.14.4ResourceLoaderAware回调接口 (23)2.14.5ApplicationEventPublisherAware回调接口 (23)2.14.6MessageSourceAware回调接口 (23)2.14.7ApplicationContextAware回调接口 (23)2.14.8@PostConstruct注解 (23)2.14.9InitializingBean回调接口 (23)2.14.10<bean/>元素的init-method属性 (24)2.14.11@PreDestroy注解 (24)2.14.12DisposableBean回调接口 (24)2.14.13<bean/>元素的destroy-method属性 (24)2.15小结 (24)3面向切面编程 (25)3.1AOP及Spring AOP基础 (25)3.1.1细说AOP (25)3.1.2Spring AOP基础概念 (25)3.2AspectJ 6初探 (25)3.3老式Spring AOP (25)3.4基于@AspectJ的Spring AOP (26)3.5基于<aop:config/>元素的AOP (26)3.5.1巧用<aop:include/>元素 (26)3.6在AspectJ 6应用中启用@Configurable注解 (26)3.6.1显式使用AnnotationBeanConfigurerAspect切面 (26)3.6.2阐述@Configurable注解 (28)3.6.3通过META-INF/aop.xml(或aop-ajc.xml)控制启用的切面集合 (30)3.6.4<context:spring-configured/>元素 (31)3.6.5初探<context:load-time-weaver/>元素 (31)3.7小结 (31)4DAO层集成支持 (33)4.1RDBMS持久化操作抽象支持 (33)4.2.1JDBC最佳实践 (33)4.3事务集成支持 (33)4.4集成测试支持 (33)4.5在AspectJ 6应用中启用@Transactional注解 (33)4.6小结 (33)5Hibernate、JPA集成 (34)5.1Hibernate集成支持 (34)5.2JPA集成支持 (34)5.3智能处理Java EE容器中的装载期织入(LTW) (34)5.4小结 (35)6O/X Mapping集成支持 (36)6.1O/X Mapping集成支持 (36)6.1.1Marshaller及Unmarshaller接口 (37)6.2实践XMLBeans集成支持 (37)6.2.1借助Ant生成XMLBeans JAR (38)6.2.2XmlBeansMarshaller实现类 (39)6.2.3<oxm:xmlbeans-marshaller/>元素 (40)6.3小结 (40)7集成Java EE其他容器服务 (41)7.1简化JNDI操作 (41)7.2集成EJB 3.1 (41)7.3线程池及任务调度集成支持 (41)7.4集成JMS (41)7.5集成JavaMail (41)7.6集成分布式操作 (41)7.7集成JMX (42)7.8集成Java EE连接器架构 (42)8Web层集成支持 (43)8.1Spring Web MVC框架 (43)8.2Spring Portlet MVC框架 (43)8.3REST架构风格 (43)8.4小结 (43)9高级Spring 3.0特性 (44)9.1优雅销毁DI容器 (44)9.2小结 (44)10附录A:安装及使用SpringSource Tool Suite (45)10.1获得SpringSource Tool Suite (45)10.2安装SpringSource Tool Suite (45)10.3使用SpringSource Tool Suite (47)10.3.1针对Spring 3.1的支持 (47)10.3.2针对Spring Web Flow的支持 (49)10.3.3针对Spring Batch的支持 (50)10.3.4针对Spring Roo的支持 (50)11附录B:Spring 3.1内置的命名空间 (51)11.1<beans/>命名空间 (51)11.2<context/>命名空间 (51)11.3<util/>命名空间 (51)12附录C:Spring Web Services (52)12.1文档驱动的Web服务 (52)12.2面向OXM的Web服务实现策略 (52)12.3Web服务安全 (52)13附录D:Spring Web Flow (53)13.2探索Spring Web Flow (53)14附录E:Spring BlazeDS Integration (54)14.1Flex-RIA王者 (54)14.2简化BlazeDS的使用 (54)14.3深入到Spring BlazeDS Integration中 (54)15附录F:Spring Roo (55)15.1快速研发之道 (55)15.1.1Spring Roo概述 (55)15.2Spring Roo架构哲学 (55)15.3深入到Spring Roo中 (55)16附录G:相关资料 (56)16.1图书 (56)16.2网站 (56)序从2003年开始,开源Spring一直在同Java EE携手走来。

最全最经典spring_mvc教程

最全最经典spring_mvc教程

spring mvc学习教程(一)-入门实例引言1.MVC:Model-View-Control框架性质的C层要完成的主要工作:封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。

2.简要概述springmvcSpring C 层框架的核心是DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即使用了一种被称为Front Controller 的模式(后面对此模式有简要说明)。

Spring 的C 层框架使用了后端控制器来、映射处理器和视图解析器来共同完成C 层框架的主要工作。

并且spring 的C 层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象。

一、入门实例1. 搭建环境在spring的官方API文档中,给出所有包的作用概述,现列举常用的包及相关作用:org.springframework.aop-3.0.5.RELEASE.jar:与Aop编程相关的包org.springframework.beans-3.0.5.RELEASE.jar:提供了简捷操作bean的接口org.springframework.context-3.0.5.RELEASE.jar:构建在beans包基础上,用来处理资源文件及国际化。

org.springframework.core-3.0.5.RELEASE.jar:spring核心包org.springframework.web-3.0.5.RELEASE.jar:web核心包,提供了web层接口org.springframework.web.servlet-3.0.5.RELEASE.jar:web 层的一个具体实包,DispatcherServlet也位于此包中。

后文全部在spring3.0 版本中进行,为了方便,建议在搭建环境中导入spring3.0 的所有jar 包(所有jar 包位于dist 目录下)。

Spring参考手册

Spring参考手册

第一部分 Spring框架的概述Spring框架是一个轻量级的解决方案和为构建企业级应用程序潜在的一站式服务。

然而,Spring是模块化的,允许你只使用那些你需要的部分,而忽略其他部分。

你可以在使用Struts时用Spring的IoC 容器,但你也可以只使用Hibernate 集成代码或JDBC抽象层。

Spring框架支持声明式事务管理、通过RMI或web服务远程访问你的逻辑,还有多种方式处理数据的持久化。

它还提供一个全能的MVC框架,并且能将AOP移植进你的软件。

Spring被设计为非侵入式的,意味着你的逻辑代码完全不必依赖于此框架。

虽然一些基于数据访问技术和Spring的库会存在于你的集成层(例如数据访问层),但是你的其他代码很容易隔离这些依赖。

1.开始使用Spring这篇手册提供了关于spring框架的详细信息,不仅有全面的特性,还有一些关于spring包含的潜在的概念(例如“依赖注入”)的背景知识。

如果你才刚刚开始,也许你应该从低级版的"Getting Started" 手册开始,从bbb://spring.io.访问。

为了更容易消化,这篇手册是专注于任务式。

2.Spring框架的介绍Spring框架是一个支持开发Java应用程序而提供全面的基础设施的Java平台,Spring处理基础部分从而你可以专注于你的应用。

spring 让你能够通过POJOs和向POJOs应用无侵入的企业服务就可以构建你的应用。

这些不仅能应用到Java SE而且还能应用到Java EE.一些作为一个开发者能够使用spring平台优势的例子●使Java方法可以执行数据库事务而不用去处理事务API●使本地Java方法可以执行远程过程而不用去处理远程API●使本地Java方法可以拥有管理操作而不用去处理JMXAPI●使本地Java方法可以执行消息处理而不用去处理JMSAPI2.1 依赖注入和控制反转Java应用程序——一个宽松的专业术语,小到一个Appletes大到运行在n层服务器上的企业级程序—通常由互相协作的对象而形成的适当的应用程序。

SpringCloudStream中文指导手册

SpringCloudStream中文指导手册

SpringCloudStream中⽂指导⼿册原⽂地址:Spring Cloud Stream中⽂指导⼿册Spring Cloud Stream 核⼼ 本节将详细介绍如何使⽤Spring Cloud Stream,并包含了诸如如何创建和运⾏Stream应⽤的内容。

1.简介 Spring Cloud Stream是⼀个构建消息驱动微服务应⽤的框架。

它基于Spring Boot构建独⽴的、⽣产级的Spring应⽤,并使⽤Spring Integration为消息代理提供链接。

你可以添加@EnableBinding注解到你的应⽤中来快速连接到消息代理,添加@StreamListener注解到⼀个⽅法上,这个⽅法会接收到Stream处理事件。

下⾯是⼀个接收外部消息的简单接收应⽤。

@(Spring Cloud Stream)SpringBootApplication@EnableBinding(Sink.class)public class VoteRecordingSinkApplication {public static void main(String[] args) {SpringApplication.run(VoteRecordingSinkApplication.class, args);}@StreamListener(Sink.INPUT)public void processVote(Vote vote) {votingService.recordVote(vote);}} @EnableBinding注解接收⼀个或者多个接⼝类型的参数(在这个例⼦⾥⾯,参数是单个Sink接⼝)。

接⼝参数声明了输⼊和/或输出通道。

Spring Cloud Stream提供了Source、Sink和Process接⼝。

你也可以定义你⾃⼰的接⼝。

下⾯是Sink接⼝的定义:public interface Sink {String INPUT = "input";@Input(Sink.INPUT)SubscribableChannel input();} @Input注解标识了⼀个输⼊通道,应⽤程序通过它接收消息;@Output注解标识了⼀个输出通道,应⽤程序通过它发布消息。

【SpringFramework】Spring入门教程(三)使用注解配置

【SpringFramework】Spring入门教程(三)使用注解配置

【SpringFramework】Spring⼊门教程(三)使⽤注解配置本⽂主要介绍四个⽅⾯:(1) 注解版本IOC和DI(2) Spring纯注解(3) Spring测试(4) SpringJDBC - Spring对数据库的操作使⽤注解配置Spring⼊门说在前⾯学习基于注解的IoC配置,⼤家脑海⾥⾸先得有⼀个认知,即注解配置和xml配置要实现的功能都是⼀样的,都是要降低模块间的耦合度。

仅仅只是配置的形式不⼀样。

关于实际的开发中到底使⽤xml还是注解,每家公司有着不同的使⽤习惯。

所以这两种配置⽅式我们都需要掌握。

基于注解配置的⽅式也已经逐渐代替xml配置。

所以我们必须要掌握使⽤注解的⽅式配置Spring。

配置步骤注意:如果使⽤Eclipse需要先安装了STS插件,或者使⽤STS开发⼯具创建项⽬。

本⽂使⽤IDEA进⾏演⽰。

1.2.1. 第⼀步:拷贝必备jar包到⼯程的lib⽬录。

注意:在基于注解的配置中,我们还要多拷贝⼀个aop的jar包。

如下图:1.2.2. 第⼆步:在类的根路径下创建⼀个任意名称的xml⽂件(不能是中⽂)注意:基于注解整合时,Spring配置⽂件导⼊约束时需要多导⼊⼀个context命名空间下的约束。

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd"></beans>1.2.3. 第⼆步:创建⼀个服务类创建⼀个测试的服务类,并且加⼊使⽤@Component注解,声明该类允许注⼊到Spring容器package org.cjw.service;import ponent;/*使⽤注解配置时,需要将Spring框架启动就创建对象的类表⽰为组件类表⽰组件类使⽤@Component注解*/@Componentpublic class CustomerService {public void save() {System.out.println("-保存数据-");}}1.2.4. 第四步在spring的配置⽂件加⼊扫描注解<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd"><!-- 声明扫描包及其⼦包的类,如果发现有组件注解的类,就创建对象并加⼊到容器中去 --><context:component-scan base-package="org.cjw" /></beans>1.2.5. 第五步:测试调⽤代码package org.cjw.test;import org.cjw.service.CustomerService;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class CustomerServiceTest {@Testpublic void testSave() {ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");CustomerService customerService = context.getBean(CustomerService.class);customerService.save();}}--测试结果,如果可以调⽤服务⽅法,测试成功。

SpringBoot官方文档中文版-3.构建你的代码

SpringBoot官方文档中文版-3.构建你的代码

SpringBoot官⽅⽂档中⽂版-3.构建你的代码前⾔这是 SpringBoot 官⽅⽂档中⽂翻译版系列的第三篇⽂章:前两篇⽂章如下:Spring Boot 不需要任何特定的代码布局来⼯作。

然⽽,有⼀些最佳实践是有帮助的。

1.避免使⽤“默认”包当⼀个类不包含包声明时,它被认为是在“默认包”中。

通常不⿎励使⽤“默认包”,应该避免使⽤。

对于使⽤ @ComponentScan、@ConfigurationPropertiesScan、@EntityScan或@SpringBootApplication 注释的 SpringBoot 应⽤程序来说,它可能会导致特定的问题,因为每个 jar 中的每个类都被读取。

我们建议您遵循 Java 推荐的包命名约定并使⽤反向的域名(例如,com.example.project)。

2. 主应⽤程序类的位置我们通常建议您将主应⽤程序类放在其他类之上的根包中。

@SpringBootApplication 注释通常放在主类上,它隐式地为某些项定义了⼀个基本的“搜索包”。

例如,如果您正在编写⼀个 JPA 应⽤程序,则使⽤ @SpringBootApplication 注释类的包来搜索@Entity 项。

使⽤根包还允许只在项⽬上应⽤组件扫描。

如果你不想使⽤ @SpringBootApplication,它导⼊的 @EnableAutoConfiguration 和 @ComponentScan 注释定义了该⾏为,所以你也可以使⽤它们。

下⾯的清单显⽰了⼀个典型的布局:com+- example+- myapplication+- MyApplication.java|+- customer| +- Customer.java| +- CustomerController.java| +- CustomerService.java| +- CustomerRepository.java|+- order+- Order.java+- OrderController.java+- OrderService.java+- OrderRepository.javaMyApplication.java ⽂件将声明 mian ⽅法,以及基本的 @SpringBootApplication,如下所⽰:import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}}每天学习⼀点点,每天进步⼀点点。

spring中文API文档

spring中文API文档

这次发布的Spring Security-3.0.1 是一个bug fix 版,主要是对3.0 中存在的一些问题进行修正。

文档中没有添加新功能的介绍,但是将之前拼写错误的一些类名进行了修正,建议开发者以这一版本的文档为参考。

另:Spring Security 从2010-01-01 以后,版本控制从SVN 换成了GIT,我们在翻译文档的时候,主要是根据SVN 的变化来进行文档内容的比对,这次换成GIT 后,感觉缺少了之前那种文本比对工具,如果有对GIT 熟悉的朋友,还请推荐一下文本比对的工具,谢谢。

序言I. 入门1. 介绍1.1. Spring Security 是什么?1.2. 历史1.3. 发行版本号1.4. 获得Spring Security1.4.1. 项目模块1.4.1.1. Core - spring-security-core.jar1.4.1.2. Web - spring-security-web.jar1.4.1.3. Config - spring-security-config.jar1.4.1.4. LDAP - spring-security-ldap.jar1.4.1.5. ACL - spring-security-acl.jar1.4.1.6. CAS - spring-security-cas-client.jar1.4.1.7. OpenID - spring-security-openid.jar1.4.2. 获得源代码2. Security 命名空间配置2.1. 介绍2.1.1. 命名空间的设计2.2. 开始使用安全命名空间配置2.2.1. 配置web.xml2.2.2. 最小<http> 配置2.2.2.1. auto-config 包含了什么?2.2.2.2. 表单和基本登录选项2.2.3. 使用其他认证提供器2.2.3.1. 添加一个密码编码器2.3. 高级web 特性2.3.1. Remember-Me 认证2.3.2. 添加HTTP/HTTPS 信道安全2.3.3. 会话管理2.3.3.1. 检测超时2.3.3.2. 同步会话控制2.3.3.3. 防止Session 固定攻击2.3.4. 对OpenID 的支持2.3.4.1. 属性交换2.3.5. 添加你自己的filter2.3.5.1. 设置自定义AuthenticationEntryPoint2.4. 保护方法2.4.1. <global-method-security> 元素2.4.1.1. 使用protect-pointcut 添加安全切点2.5. 默认的AccessDecisionManager2.5.1. 自定义AccessDecisionManager2.6. 验证管理器和命名空间3. 示例程序3.1. Tutorial 示例3.2. Contacts3.3. LDAP 例子3.4. CAS 例子3.5. Pre-Authentication 例子4. Spring Security 社区4.1. 任务跟踪4.2. 成为参与者4.3. 更多信息II. 结构和实现5. 技术概述5.1. 运行环境5.2. 核心组件5.2.1. SecurityContextHolder, SecurityContext 和Authentication 对象5.2.1.1. 获得当前用户的信息5.2.2. UserDetailsService5.2.3. GrantedAuthority5.2.4. 小结5.3. 验证5.3.1. 什么是Spring Security 的验证呢?5.3.2. 直接设置SecurityContextHolder 的内容5.4. 在web 应用中验证5.4.1. ExceptionTranslationFilter5.4.2. AuthenticationEntryPoint5.4.3. 验证机制5.4.4. 在请求之间保存SecurityContext 。

spring-mvc 中文文档

spring-mvc 中文文档

Spring框架 参考文档
一个团队
Github
Spring Framework 2.5翻译计 划 Spring Framework 4.x参考文 档 Spring Framework 4.x中文翻 译 Spring 中 文文档3.1
满江红机构
-
waylau
Github
翻译了Spring文档的简介、新特性和容器IOC 部分
1
URI构造 为控制器和方法指定URI 在视图中为控制器和方法指定URI 地区信息 获取时区信息 Accept请求头解析器AcceptHeaderLocaleResolver Cookie解析器CookieLocaleResolver Session解析器SessionLocaleResolver 地区更改拦截器LocaleChangeInterceptor 主题 themes 关于主题:概览 定义主题 主题解析器 Spring的multipart(文件上传)支持 概述 使用MultipartResolver与Commons FileUpload传输文件 Servlet 3.0下的MultipartResolver 处理表单中的文件上传 处理客户端发起的文件上传请求 异常处理 处理器异常解析器HandlerExceptionHandler @ExceptionHandler注解 处理一般的Spring MVC异常 使用@ResponseStatus注解业务异常 Servlet默认容器错误页面的定制化 Web安全 "约定优于配置"的支持 控制器类名-处理器映射ControllerClassNameHandlerMapping 模型ModelMap(ModelAndView) 视图-请求与视图名的映射 HTTP缓存支持 HTTP请求头Cache-Control 对静态资源的HTTP缓存支持 在控制器中设置Cache-Control、ETag和Last-Modified响应头

Spring3.0 MVC 中文教程

Spring3.0 MVC 中文教程

Spring3 MVC - 3到Spring MVC框架简介Spring3 MVC框架简介Spring MVC是Spring的框架的Web组件。

它提供了丰富的功能,为建设强大的Web应用程序。

Spring MVC框架的架构,并在这样的高度可配置的方式,每一块的逻辑和功能设计。

此外Spring可以毫不费力地与其他流行的Web框架,如Struts,WebWork的,的Java Server Faces和Tapestry集成。

这意味着,你甚至可以告诉Spring使用Web框架中的任何一个。

比Spring更不紧耦合的servlet或JSP 向客户端呈现视图。

喜欢速度与其他视图技术集成,Freemarker的,Excel或PDF现在也有可能。

Spring3.0 MVC系列∙第1部分:到Spring 3.0 MVC框架简介∙第2部分:在Spring 3.0 MVC创建Hello World应用程序∙第3部分:在Spring 3.0 MVC的形式处理∙第4部分:Spring3 MVC的Tiles Support与Eclipse中的例子插件教程∙第5部分:Spring3 MVC的国际化及本地化教程与范例在Eclipse∙第6部分:Spring3 MVC示例教程Spring主题∙第7部分:创建Spring3 MVC Hibernate 3的示例在Eclipse中使用Maven的在Spring Web MVC,你可以使用任何对象作为命令或表单支持对象,你不需要实现框架特定的接口或基类。

Spring的数据绑定是高度灵活的:例如,将验证错误类型不作为应用系统错误,可以通过评估的不匹配。

因此,你不必重复你的业务对象的属性,简单的无类型的字符串,在表单对象仅仅是为了处理无效的意见,或正确转换的字符串。

相反,它往往是最好直接绑定到业务对象。

请求处理生命周期Spring的Web MVC框架是,像许多其他Web MVC框架,要求为导向,围绕一个中心的servlet,它把请求分派给控制器,提供其他功能,有利于开发Web应用而设计的。

Spring Security 5.1 中文 参考手册 中文文档

Spring Security 5.1  中文 参考手册 中文文档

Spring Security的许多公司用户都需要与不遵循任何特定安全标准的“传统”系统集成,而Spring Security很高兴能够与这样的系统“很好地发挥”。
无论身份验证机制如何,Spring Security都提供了一套深层次的授权功能。 有三个主要的感兴趣领域:授权Web请求,授权是否可以调用方法并授权访问单个域对象实例。 为帮助您理解这些差异,请分别考虑Servlet规范Web模式安全性,EJB容器托管安全性和文件系统安全性中的授权功能。 Spring Security在所有这些重要领域提供了深入的 功能,我们将在本参考指南的后面部分进行探讨。
人们使用Spring Security有很多原因,但是大多数人在找到Java EE的Servlet规范或EJB规范的安全特性后,都缺乏典型企业应用场景所需的深度。 在提到这些标准的同 时,认识到它们在WAR或EAR级别不可移植是很重要的。 因此,如果切换服务器环境,在新的目标环境中重新配置应用程序的安全性通常需要很多工作。 使用Spring
这些管理因素的非详尽清单将包括安全公告监控修补人员审查审计变更控制工程管理系统数据备份灾难恢复性能基准测试负载监控集中式日志记录事件响应程序等
Spring Security Reference
本帮助文档是 觉得烦死 整理--QQ:654638585 声明:
译 : Spring安 全 参 考
中文文档都是由软件翻译,翻译内容未检查校对,文档内容仅供参考。 您可以任意转发,但请至保留作者&出处(),请尊重作者劳动成果,谢谢!
2. Introduction
译 : 2.介 绍
2.1 What is Spring Security?
译 : 2.1什 么 是 Spring Security ?

spring配置详解

spring配置详解

spring配置详解1.前⾔公司⽼项⽬的后台,均是基于spring框架搭建,其中还⽤到了log4j.jar等开源架包。

在新项⽬中,则是spring和hibernate框架均有使⽤,利⽤了hibernate框架,来实现持久化,简化sql操作等。

Hibernate配置⽂件可以有两种格式,⼀种是 hibernate.properties,另⼀种是hibernate.cfg.xml。

后者稍微⽅便⼀些,当增加hbm映射⽂件的时候,可以直接在 hibernate.cfg.xml ⾥⾯增加,不必像 hibernate.properties 必须在初始化代码中加⼊。

我们新项⽬中使⽤的是hibernate.cfg.xml格式。

不过在本⽂中不将细述,后续有机会再补上。

公司项⽬中,中间件主要有tomcat,webshpere,WebLogic。

以下,将对项⽬中spring基本配置,log4j的配置,还有中间件的相关参数配置做⼀个初步的介绍。

2.spring配置——以⽼GIS项⽬为例⼦GISV13中的配置涉及到了SpringMVC,IOC,AOP, Quartz⽅⾯的配置。

配置的实现是通过注记配置和XML配置来合作实现。

这⾥,我将按照Spring的配置流程,将其他⼏个⽅⾯的配置融合其中,来进⾏全⾯解析。

2.1SpringMVC的配置2.1.1.web.xml的配置Web程序中,当中间件启动时,中间件会⾸先读取web.xml中的配置。

在web.xml中可以配置监听器,过滤器,servlet映射等等。

在Spring 框架中,我们主要需配置容器初始化时读取的spring容器配置⽂件的路径以及springMVC中的分发器DispatcherServlet。

在GISV13的web.xml中,我们定义了如下内容:InitGISConfigServlet定义了容器启动时,⾸先要运⾏这个⽅法。

然后servletname为MVC的这部分便是定义了springMVC的分发器以及此servlet所对应的加载配置⽂件的路径。

spring4中文技术手册==

spring4中文技术手册==

在《静态代理和动态代理》中提到了面向方面编程,主要就是基于动态代理。

单独抽象出非业务的功能,服务于某些业务方法。

Spring提供了四种很实用的Advice,分别为:Before Advice, After Returning Advice, Around Advice, After throwing Advice。

都是方法级别的,就是在某个方法执行前后插入一些非业务的操作,如打日志或者判断权限等。

对于这四种advice的实现,spring都提供了三种方法,分别为基于接口、基于xml和基于annotation(注释)。

Before Advice会在目标对象的方法执行之前被调用;After Advice会在目标方法执行之后被调用;Around Advice则可以在目标方法执行前后同时加上相关服务;Throw Advice是在异常发生后执行某些操作。

1.基于接口的Advice这个就需要自定义的Aspect实现Spring接口。

BeforeAdvice需要实现org.springframework.aop.MethodBeforeAdvice接口:After Advice实现org.springframework.aop.AfterReturningAdvice接口:Around Advice需要实现org.aopalliance.intercept.MethodInterceptor接口:类前面的注释说明了该方法的使用,就是要在invoke()方法中调用MethodInvocation.proceed(),将执行传给下一个Interceptor,最终执行目标方法。

在proceed()方法前后加操作,到达Aroud advice的作用。

在Aspect定义好后,就需要在bean定义文件中进行配置,通过org.springframework.aop.framework.ProxyFactoryBean的配置,指出接口、目标类和Aspect。

SpringFramework-5.2.7中文解析-核心篇

SpringFramework-5.2.7中文解析-核心篇

关于本书本书本书编写主要⽬的在于翻译官⽅spring.io关于SpringFramework模块⽂档之核⼼篇,但是本书不仅仅是简单的翻译,我会根据相应的模块给出⼀些代码的操作实践以及给出相应的源码分析,SpringFramework⽂档我个⼈认为在所有开源框架中算是写得最好的了,But如果对于初学者或者是实践经验较少的⼩伙伴来说还是⽐较困难的。

这⾥不仅仅是⽂档全是英⽂形式⽽且根据⽂档的概述是⽐较难理解和应⽤到实践项⽬开发中,这⾥需要开发⼈员积累了相应的项⽬实践经验才⾏。

So我在翻译SpringFramework过程中会不断编写相应的示例代码、结合⽂档和源码分析达到更好的理解。

在后⾯的书中我可能会翻译现在⽐较流⾏的微服务框架SpringBoot、SpringCloud以及Spring的其他模块⽐如:SpringData、SpringSession、SpringSecurity等,SpringFramework在整个Spring体系中起着基⽯的作⽤,SpringBoot基于SpringFramework进⾏了相应的拓展包括:⾃动化配置、外部化配置、组件化(start模式)等,⽽SpringCloud基于SpringBoot对整个微服务体系的服务治理、服务注册发现、统⼀配置中⼼等做了相关的集成和统⼀相关的抽象例如:Spring Cloud Commons等。

对应SpringFramework这块主要分为以下模块来解析:Spring核⼼、测试、数据存储、Web Servlet、Web Reactive、集成。

版本当前选择的版本Version 5.2.7.RELEASE进⾏分析。

约束使⽤字体加粗对重点关键字进⾏标注使⽤灰⾊线框对专业术语进⾏标识本⽂使⽤不同层级对⽂档结构进⾏描述⽂章的⼀级、⼆级分类尽量保存英⽂不做翻译(能够帮助读者能够快速定位原⽂位置)示例代码地址:https:///newitman/SpringFramework5.2.6.git本书开始编写时间2020-05-05作者个⼈从事⾦融⾏业,就职过易极付、思建科技、某⽹约⻋平台等重庆⼀流技术团队,⽬前就职于某银⾏负责统⼀⽀付系统建设。

Spring框架参考文档-5.0.0-中文完整版

Spring框架参考文档-5.0.0-中文完整版

Spring框架参考文档-5.0.0-中文完整版AuthorsRod Johnson , Juergen Hoeller , Keith Donald , Colin Sampaleanu , Rob Harrop , Thomas Risberg , Alef Arendsen , Darren Davison , Dmitriy Kopylenko , Mark Pollack , Thierry Templier , Erwin Vervaet , Portia Tung , Ben Hale , Adrian Colyer , John Lewis , Costin Leau , Mark Fisher , Sam Brannen , Ramnivas Laddad , Arjen Poutsma , Chris Beams , Tareq Abedrabbo , Andy Clement , Dave Syer , Oliver Gierke , Rossen Stoyanchev , Phillip Webb , Rob Winch , Brian Clozel , Stephane Nicoll , Sebastien Deleuze版本号:5.0.0.RELEASECopyright ? 2004-2016Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.文档官网:https://docs.spring.io/spring/docs/5.0.0.RELEASE/spring-framework-reference/index.html现在官网的5.0.0已经在2017年9月28日出了release版,为此翻译了5.0.0版本(从4.3.10升级到此版本,如果还在使用4.3.10版本,请看本人的前一个版本),翻译前后历时15天,十多次的修改和校对。

SpringFramework5.0入门教程

SpringFramework5.0入门教程

SpringFramework5.0⼊门教程1. 为什么学习Spring?随着对Java EE的不断接触和理解,你会发现Spring 在各个企业和项⽬中发挥着越来越重要的作⽤。

掌握Spring 已成为我们IT ⾏业⽣存必学的本领之⼀。

1. Spring Framework 是⼀个开源的Java/Java EE全功能栈(full-stack)的应⽤程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本。

2. 该框架基于 Expert One-on-One Java EE Design and Development(ISBN 0-7645-4385-7)⼀书中的代码,最初由RodJohnson和Juergen Hoeller等开发。

3. Spring Framework提供了⼀个简易的开发⽅式,这种开发⽅式,将避免那些可能致使底层代码变得繁杂混乱的⼤量的属性⽂件和帮助类。

Spring Framework 当前最新版本是Spring Framework 5,当你打开官⽹,你应该能够看到官⽹的宣传图⽚这⾥有个相关的新闻有兴趣可以看下,中⽂版点击查看根据官⽹动态和我所了解的信息来看,Spring 官⽹还会继续⽀持Spring MVC,因为它还有很多改进的地⽅。

但是未来的趋势我认为必将是Spring Boot+ SpringWeb Flux + Spring Cloud .那么Spring MVC 和 Spring Web Flux 两者有何区别呢?官⽹对此给出了这样⼀张对⽐图:翻译下就是:1. Spring MVC基于servlet API构建,并使⽤⼀个同步阻塞I / O体系结构和⼀个单线程请求线程模型的Web 框架2. Spring WebFlux是⼀个⾮阻塞的Web框架,从该组建⽴起,利⽤多核,下⼀代处理器和⼤量并发连接。

总结:1. Spring MVC 是基于Servlet API 构建的同步阻塞式I/O 的Web 框架。

SpringBatch中文参考文档V3.0.6-1SpringBatch介绍

SpringBatch中文参考文档V3.0.6-1SpringBatch介绍

SpringBatch中⽂参考⽂档V3.0.6-1SpringBatch介绍1 Spring Batch介绍企业领域中许多应⽤系统需要采⽤批处理的⽅式在特定环境中运⾏业务操作任务。

这种业务作业包括⾃动化,⼤量信息的复杂操作,他们不需要⼈⼯⼲预,并能⾼效运⾏。

这些典型作业包括:基于时间的事件处理(例如:⽉底结算,通知或信函);重复的、数据量⼤的、业务逻辑规则错综复杂的定期任务(例如:保险盈利决策和利率调整);来⾃内外部不同应⽤系统的信息集成任务,这些信息需要进⾏格式化、校验,并通过事务的⽅式处理成为系统可⽤的记录。

批处理程序就是⽤来处理这种数以亿计的企业⽇常事务。

Spring Batch是⼀个轻量级的,全⾯的批处理框架,旨在帮助开发⼈员构建出健壮的⽤于处理⽇常事务的企业级批处理系统。

Spring Batch 构建于POJO和Spring框架,开发者容易上⼿,现有的优秀企业级服务也能融合进来。

Spring Batch不是⼀个调度框架。

当前开发市场上有许多优秀的企业级调度器,包括付费软件和开源软件,例如Quartz, Tivoli, Control-M等。

Spring Batch的设计意图不是来替换它们,⽽是配合这些调度器协同⼯作。

Spring Batch提供处理⼤数据的可复⽤的核⼼功能,包括⽇志/跟踪,事务管理,Job程序统计,job重启,job跳转和资源管理,它同时也提供先进的技术服务和特性,即通过优化和分区技术使得批处理作业达到⾼容量和⾼性能。

⽆论简单的,复杂的还是⾼容量的批处理任务都可以利⽤该框架的可扩展性来处理⼤量的信息。

1.1 背景当开源软件项⽬和相关的社区重点关注⽹络和基于SOA消息的体系框架时,java领域仍然缺少⼀个可复⽤的批处理框架,企业应⽤仍在当前的IT环境中处理这样的批处理事务。

标准化、可复⽤的批处理架构的缺失导致IT企业各⾃开发了⼀次性的、并只针对本企业内部系统的解决⽅案,⽆法复⽤。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Spring是“超重量级”的。
Spring涉及的内容确实很多(例如:提供了对jdbc、ORM、远程访问等等的支持),但其本质还是Java技术的庞大。Spring只是为了这些技术提供更好的使用方案而已。同时,你可以只选取你需要使用的部分。
Spring
Spring框架由七个定义明确的模块组成(图1.1)。
批判来源于EJB的支持者,他们认为EJB是一个标准,是J2EE规范的一部分。当然,标准最主要的目的是希望在应用服务器之间是可移植的,可是EJB的移植却并不轻松,不同应用服务器的ejb部署描述文件总是有着差异。而且EJB开发的类完全依赖于EJB容器。而Spring对其管理的Bean没有任何形式的侵入,这样的Bean是普通Java对象(POJO),那么它就遵循Java标准,可以到处移植。
应用上下文(Context)模块
核心模块的BeanFactory使Spring成为一个容器,而上下文模块使它成为一个框架。这个模块扩展了BeanFactory的概念,增加了对国际化(I18N)消息、事件传播以及验证的支持。
另外,这个模块提供了许多企业服务,例如电子邮件、JNDI访问、EJB集成、远程以及时序调度(scheduling)服务。也包括了对模版框架例如Velocity和FreeMarker集成的支持。
Spring
名词解释
容器:
框架:
组件:
服务:
Spring
主要内容:介绍Spring的历史,Spring的概论和它的体系结构,重点阐述它在J2EE中扮演的角色。
目的:让学员全面的了解Spring框架,知道Spring框架所提供的功能,并能将Spring框架和其它框架(WebWork/Struts、hibernate)区分开来。
■框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。
User.java
public class User {
private Long id;
private String name;
private String password;
private String grБайду номын сангаасup;
public User(String name,String password){
= name;
this.password = password;
}
//相应的get/set方法
………..
}
持久化类有两个方法,分别在内存中保存和获取User对象。代码如下:
MemoryUserPersist.java
public class MemoryUserPersist {
用户注册的例子
我们先看看更进一步的需求:实现一个用户注册信息持久化的类。
功能:
1、保存用户注册的信息;
2、根据用户的名称获得该注册用户。
虽然功能简单,但它对持久化方式的要求却非常的灵活:
1、在内存中持久化,供测试、演示使用。
2、如果用户的数据很少,将用户信息持据化到文本文件中。
3、如果用户信息很多,并需要一些灵活的查询,则需要使用JDBC技术将用将用户信息持久化到数据库中。
(Spring框架概览图)
如果作为一个整体,这些模块为你提供了开发企业应用所需的一切。但你不必将应用完全基于Spring框架。你可以自由地挑选适合你的应用的模块而忽略其余的模块。
就像你所看到的,所有的Spring模块都是在核心容器之上构建的。容器定义了Bean是如何创建、配置和管理的——更多的Spring细节。当你配置你的应用时,你会潜在地使用这些类。但是作为一名开发者,你最可能对影响容器所提供的服务的其它模块感兴趣。这些模块将会为你提供用于构建应用服务的框架,例如AOP和持久性。
4、面对企业复杂关联的数据,甚至需要使用持久层框架来实现用户信息的持久化,比如:iBATIS、Hibernate等。
如何去设计、实现我们这个持久化类呢?
我们遵循软件开发的原则“首先让它跑起来,再去优化(重构)它”,我们首先实现最简单的在内存中持久化用户信息。
既然我们要保存和取得用户信息,首先应该设计用户类。代码如下:
2003年2月Spring框架正式成为一个开源项目,并发布于SourceForge中。
Spring
J2EE应该更加容易使用。
面向对象的设计比任何实现技术(比如J2EE)都重要。
面向接口编程,而不是针对类编程。Spring将使用接口的复杂度降低到零。(面向接口编程有哪些复杂度?)
代码应该易于测试。Spring框架会帮助你,使代码的测试更加简单。
Spring的Web模块
Web上下文模块建立于应用上下文模块之上,提供了一个适合于Web应用的上下文。另外,这个模块还提供了一些面向服务支持。例如:实现文件上传的multipart请求,它也提供了Spring和其它Web框架的集成,比如Struts、WebWork。
Spring的MVC框架
Spring为构建Web应用提供了一个功能全面的MVC框架。虽然Spring可以很容易地与其它MVC框架集成,例如Struts,但Spring的MVC框架使用IoC对控制逻辑和业务对象提供了完全的分离。
Spring
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
}
public void saveUser(User user){
users.put(user.getName(),user);
}
public User LoadUser(String userName){
核心容器
这是Spring框架最基础的部分,它提供了依赖注入(Dependency Injection)特征来实现容器对Bean的管理。这里最基本的概念是BeanFactory,它是任何Spring应用的核心。BeanFactory是工厂模式的一个实现,它使用IoC将应用配置和依赖说明从实际的应用代码中分离出来。
Spring的AOP模块
Spring在它的AOP模块中提供了对面向切面编程的丰富支持。这个模块是在Spring应用中实现切面编程的基础。为了确保Spring与其它AOP框架的互用性,Spring的AOP支持基于AOP联盟定义的API。AOP联盟是一个开源项目,它的目标是通过定义一组共同的接口和组件来促进AOP的使用以及不同的AOP实现之间的互用性。通过访问他们的站点http://aopalliance. ,你可以找到关于AOP联盟的更多内容。
■控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
■面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务()管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
JavaBean提供了应用程序配置的最好方法。
在Java中,已检查异常(Checked exception)被过度使用。框架不应该迫使你捕获不能恢复的异常。
Spring
Spring不是一个“标准”。Spring不是J2EE规范的一部分,没有通过JCP(Java Community Process)的审核认可。
目的:解决企业应用开发的复杂性
功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
范围:任何Java应用
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
■轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
它也允许你声明性地将请求参数绑定到你的业务对象中,此外,Spring的MVC框架还可以利用Spring的任何其它服务,例如国际化信息与验证。
总结
Spring带来了复杂的J2EE开发的春天。它的核心是轻量级的IoC容器,它的目标是为J2EE应用提供了全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间可以彼此独立,也可以使用其它的框架方案加以代替,Spring希望为企业应用提供一站式(one-stop shop)的解决方案。
■容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
Spring
主要内容:从最基本的面向接口编程逐步引入IoC设计模式(以银行卡:Card为例,接口-单例-工厂方法-IoC);详细介绍IoC的三种实现,并对其优、缺点进行比较;之后开始引入Spring的IoC容器,详细介绍如何使用Spring的IoC容器组织业务组件。
相关文档
最新文档