- 浏览: 913068 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wangzhen199009:
good. Thx for your sharing.
REST和认证 HMAC -
jsshizhan:
你的这个SQL有问题的
数据库中如何使用SQL查询连续数字并且统计连续个数 -
maoghj:
dddddddddddddd
mysql 更改my.cnf 慢查询日志 -
zhoutong123a:
人的贪婪无止境,只能控制,不能满足
招人心得 -
xuerThinkVickie:
...
ZeroClipboard支持IE,firefox,Chrome复制到剪贴板
Spring JavaConfig参考文档
第一章、介绍 |
评论 共 14 条 | 发表评论 |
第二章、组件 2.1 @Configuration 代码
@Configuration是一个class级别的annotation,它指示了配置里定义的bean的一些默认值。 代码
它可以认为是<beans/>标签的替代品。 用@Configuration标注的类继承ConfigurationSupport是明智的,因为该类提供了一些辅助方法。
2.2 @Bean 代码
上面的代码指示Spring容器使用方法名(作为bean的名字)和返回值(实际的bean实例)来创建一个bean。 该bean拥有session作用域,这意味着调用exampleBean()方法将为每个HTTP会话创建一个新的bean实例。 由于使用纯Java,我们在处理静态方法时没有必要使用factory-method: 代码
或者使用FactoryBean/MethodInvokingFactoryBean来创建复杂对象: 代码
@Bean是一个method级别的annotation并指示用来创建和配置一个bean实例的Java代码。 该标记支持XML bean定义的大部分选项,如autowiring,lazy-init,dependency-check,depends-on和scoping。 并且,lifecycle方法和*Aware接口完全支持: 代码
除了destroyMethodName,@Bean标记也支持initMethodName。
2.3 @ExternalBean 代码
当JavaConfig遇到@ExternalBean时,它将覆盖该方法,这样任何时候该方法被调用时,将在父application context里查找该方法名的bean。 这样,你的配置保持纯Java和重构友好性。 注意@ExternalBean也在普通方法上工作;上面的例子使用抽象方法来避免写入无法执行的dummy code: 代码
2.4 @ScopedProxy 代码
|
第三章、Bean可见度 代码
和如下XML配置一起使用: 代码
JavaConfig遇到如上的配置时,它将创建3个beans: publicBean, hiddenBean和secretBean。 它们是互相可见的,但是在'owning' application context(启动JavaConfig的application context)里创建的beans将只能看到publicBean。 hiddenBean和secretBean只能被在VisibilityConfiguration里创建的beans访问。 任何被@Bean标注的非public方法(protected, private和default)将创建一个'hidden' bean。 在上面的例子里,mainBean使用publicBean和hiddenBean配置。 但是,由于后者是hidden的,在运行时Spring将抛出异常: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'hiddenBean' is defined ... 为了提供可见度功能,JavaConfig利用Spring提供的application context hierarchy,将所有的hidden beans放在一个子application context里一个 特殊的配置类里。这样,hidden beans可以访问在父(或owning)context里定义的beans,但是相反不行。
|
四、装配依赖 代码
上面的例子中,book的author使用rod方法的返回值。 但是,由于book和rod方法都被@Bean标记,结果得到的Spring管理的beans将遵循容器语义: rod bean将是singleton而book bean将是prototype。 当创建配置时,Spring知道annotation context并且将用名为"rod"的bean的引用来代替rod()方法。 每次book bean被请求时容器将返回一个新的Book实例(prototype),但是对rod bean则将返回同一实例(singleton)。 上面的代码等同于: 代码
注意上面的例子使用两个常见的scopes类型,而任何类型的scoping都可以被指定: 代码
|
五、命名策略 代码
在某些情况下,以方法名作为同样的bean名字并不合适,不同的类将覆盖定义。 为了定制该行为,我们可以实现BeanNamingStrategy接口来提供自己的名字生成策略。 但是,在写你自己的代码之前,看看默认实现MethodNameStrategy提供的选项: 代码
这样配置后,bean的名字将为bean创建方法加上class名前缀: 代码
|
六、混合XML和annotations 代码
为了引用myBean这个bean,我们可以使用下面的代码片段: 代码
在使用ConfigurationSupport或BeanFactoryAware之前请三思,因为@ExternalBean以重构更友好的方式提供同样的功能。 JavaConfig发布时包含了一个Petclinic示例,它使用Java和Groovy来替换部分XML配置--请参考示例程序获得更多信息。
|
七、使用Java Configuration a, AnnotationApplicationContext 代码
这种特有的application context将自动读取classpath下匹配给定模式的类并添加进来作为beans,缺点是这种方式不允许配置实例带参数。
b, Configuration post processor 代码
这种方式允许更多的配置选项,因为它不仅提供对configuration processing(通过ConfigurationPostProcessor)的控制,也提供对配置实例本身。 通过定义configuration为一个bean,Spring容器可以用来配置configuration(设置properties或者使用某个构造方法): 代码
|
第八章、Roadmap 译者说: 最后感谢老婆公司领导命令她今天加班,译者今天才有一天的时间来翻译此文档。 |
Spring JavaConfig和Spring annotation(http://spring-annotation.dev.java.net)区别在哪儿,Spring 2.1采用的是哪种方式,太乱了,,, 还好现在Spring项目还没有用到这些东西 |
JavaConfig和sannotations都以plugins的方式使用,Spring现在还没有集成它们,而JavaConfig是Spring的子项目,Spring要把Annotation配置集成到核心代码的话肯定选择JavaConfig了 你要采用annotation方式配置,就表示接受使用@Configuration |
期待中,可以省去配置xml文件的麻烦了。主要是xml文件的配置形式不能使用到java的类型检测,容易出错。。 |
文章写的不错,这个LOGO看得很不舒服 |
译的不错,辛苦。 JavaConfig也提供了AOP的注解配置方式,不过文档中还没怎么提,不知道以后会不会替代AspectJ的注解方式 |
相关推荐
本文档为Spring JavaConfig参考指南,版本1.0.0.m3,版权属于2005-2008年的Rod Johnson、Costin Leau和Chris Beams。本文档主要分为三部分: 1. **介绍**:介绍JavaConfig的基础概念,包括快速入门教程。 2. **API...
在提供的文档中,《Spring JavaConfig参考文档》详细介绍了如何使用Java类来替代XML配置。Spring 2.0引入了@Configuration和@Bean注解,使得配置更加直观且易于测试。这种方式减少了XML配置的复杂性,提高了代码的...
### Spring MongoDB 参考文档中文版关键知识点概览 #### 1. 了解Spring - **SpringData**:利用Spring框架的核心功能如IoC容器、类型转换系统等。 - **核心概念**:虽然不需要深入了解Spring API的具体细节,但对...
根据提供的文件内容,以下是关于Spring Cloud Dalston中文文档参考手册中文版的知识点详细介绍。 首先,Spring Cloud Dalston是Spring Cloud的一套组件,它帮助开发者构建分布式的系统。Spring Cloud与云原生应用...
在分布式系统中,各个服务的配置需要集中管理,Spring Cloud通过Spring Cloud Config组件,可以实现配置的外部化存储,并支持配置动态刷新。 2. 服务发现:服务注册与发现是微服务架构的核心之一,Eureka是Spring ...
Spring 数据 JPA 是一个强大的框架,它为使用 Java 持久化 API (JPA) 与 Spring 框架集成提供了便利。JPA 允许开发者使用注解来定义实体对象及其数据库行为,减少了手动编写 SQL 和 DAO 类的需求。在 Spring 中,JPA...
### Spring Security 2.0.x完全中文参考文档 #### 序言 本文档旨在为用户提供一份详尽且全面的Spring Security 2.0.x版本的中文指南,它不仅覆盖了核心概念、配置方法以及实际应用案例,还深入探讨了安全框架的...
Spring Cloud 是一个基于Java的微服务开发框架,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)操作的一系列...
Java 和 Spring 技术栈是现代企业级应用开发的核心组件,涵盖了从基础编程到...通过阅读这些文档,你可以对 Java、Spring、Spring Boot、MyBatis 和 Spring Cloud 有一个全面的理解,并能更好地应用于实际项目中。
创建 Repository 实例可以通过 XML 配置、JavaConfig 或者独立使用 Spring Beans 来实现。例如,使用 `@RepositoryDefinition` 注解定义一个 Repository,然后通过 `JpaRepositoryFactoryBean` 创建其实例。 **JPA ...
### Spring Security 3.0.1 中文参考文档知识点概览 #### 一、序言与入门 **1.1 Spring Security 是什么?** - **定义:** Spring Security 是一个强大的且高度可定制的身份验证和授权框架。它为基于 Java 的企业...
在学习和使用过程中,参考"Spring Cloud 中文文档 参考手册 中文版2018.pdf"和"spring-boot-reference-guide-zh.pdf"这两份文档是非常有帮助的。它们详尽地介绍了这两个框架的各个组件、配置、使用示例和最佳实践。...
《Spring 1.2 API 参考手册》是学习和理解Spring框架1.2版本核心API的重要资源。Spring是一个开源的Java平台,它为构建企业级应用提供了全面的框架支持,包括依赖注入、面向切面编程(AOP)、数据访问、事务管理、...
Spring Cloud 是一个基于Java的微服务开发框架,它为开发者提供了在分布式系统中实现配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态等多种功能。...
3. **配置管理**:Spring Cloud Config支持配置中心,可以方便地管理多个环境下的配置文件,并且可以与Spring Cloud Bus整合实现配置的动态刷新。 4. **服务发现**:Eureka是Spring Cloud Netflix中的一个组件,...
1. **`decide(Authentication authentication, Object object, ConfigAttributeDefinition config)`**: - 这个方法接收三个参数:`Authentication`对象、安全对象(通常是业务逻辑层的对象,如方法或数据对象)、...
这个资源是Spring Cloud的2018年中文参考文档,与官方英文文档同步,为开发者提供了全面且易懂的中文指南。 一、Spring Cloud基础概念 1. **服务发现**:Spring Cloud Netflix Eureka 提供了服务注册与发现的功能,...
Spring Security 是一个强大的Java安全框架,专为J2EE企业级应用设计,尤其与Spring框架无缝集成。这个框架提供了一整套的安全服务,包括身份验证、授权、访问控制以及会话管理,确保了应用程序的安全性。Spring ...
SpringCloud是Java开发人员在构建分布式系统时常用的一套微服务框架,它提供了全面的解决方案,包括服务发现、配置中心、断路器、智能路由、微代理、控制总线、全局锁、领导选举、分布式会话、集群状态等。...