快人一步
VMware 提供培训和认证,助您突飞猛进。
了解更多使用 JavaConfig 而非 XML 的 Spring 应用正变得越来越流行。今天我们想向您展示最新发布的 Spring Tool Suite 3.3.0 中的新功能,这些功能使您能够更轻松地使用注解和 JavaConfig(而非 XML)来编写 Spring 应用。
假设您正在实现一个基于 Spring 和 JavaConfig 的 Web 应用。一种常见的做法是拥有一个基础的 @Configuration 类,您可以在其中定义应用中的通用基础 Spring 配置。它可能看起来像这样
@Configuration
@ComponentScan
class ApplicationConfig {
@Autowired private Environment env;
...
除此之外,您可能还有一个 Web 应用的 Web 初始化器实现,它将您的通用基础配置类定义为根配置,并另外定义一个(可能是此 Web 初始化器的内部类)用于 Web 应用特定的配置
@Configuration
@Import(RepositoryRestMvcConfiguration.class)
@ComponentScan
public static class WebConfiguration extends WebMvcConfigurationSupport {
@Autowired Repositories repositories;
@Bean public DomainClassConverter domainClassConverter() {
return new DomainClassConverter<>(mvcConversionService());
}
...
Spring Tool Suite 现在提供了直接将这些 @Configuration
类配置为项目的 Spring 配置的选项
这与基于 XML 的 Spring 配置文件完全相同。您甚至可以为一个项目同时配置两者,但这似乎不是一个好的设计选择。如果您的 Spring 应用入口点是使用 context:component-scan
元素的 XML 文件来考虑 @Configuration
类,则无需在项目设置中也配置这些类。它们会被工具自动识别。
在项目设置中配置了 @Configuration
类后,您可以在 Spring 浏览器或项目浏览器中浏览 Spring 模型。
### Bean 配置集 就像您在工具中将 XML 配置组织成 Bean 配置集(以便为验证组织到有意义的上下文中)一样,您也可以选择将 JavaConfig 类添加到这些配置集中。
如果您使用多个 Bean Profile,这会特别有用。在这种情况下,您可以为每个 Profile 配置一个配置集,以便对每个 Profile 进行验证。
### Spring 项目设置变得容易 自 3.3.0 版本以来,Spring Tool Suite 提供了一种更简单的方式来配置您的 Spring 项目以获得工具支持。提供了新的上下文菜单操作,可以在项目设置中定义 @Configuration 类,删除它们,并将它们组织到 Bean 配置集中
Spring 工具作为项目构建的一部分,会在后台对您的 Spring 代码和 Spring 配置文件运行大量验证。如果在项目设置中定义了 @Configuration 类,这些验证也会针对这些配置运行。例如,这提供了对 @Autowired 注解的验证。无论何时,如果项目中没有定义匹配的 Bean,而该 Bean 将在运行时被注入,工具都会将其标记为警告。
虽然 Eclipse 已经为许多情况提供了良好的内容辅助,但它不了解您用于配置 Spring 的注解的具体细节。但我们了解。因此,我们开始为 Spring 特定的注解提供改进的内容辅助支持。作为起点,从现在起,在定义 @ComponentScan 注解的 base packages 和/或 basePackageType
属性时,您可以获得类型名称和包名称的内容辅助。
我们将继续这项工作,并添加更多此类支持。如果您希望在此领域实现特定功能,请告诉我们。欢迎您的反馈。
@Autowired
导航Eclipse 提供了一个很棒的功能,称为超链接。如果您按住 Command 键并将鼠标悬停在该元素上,它会把类名和 Java 代码的各种元素变成超链接。我们增强了这种快速导航功能,以便直接访问 @Autowired
字段和参数中注入的 Bean。通过这种方式,您可以直接跳转到将注入到此 @Autowired
目标的 Bean 的定义。
目前,您必须在项目设置中手动定义 @Configuration
类。这将在未来的版本中改变。我们正在这一领域进行自动化工作。除此之外,我们还在研究对 @Enable*
注解的增强支持。目标是提供更详细的信息,说明这些注解创建了哪些 Bean。
Spring Tool Suite 3.3.0 将基于 JavaConfig 的 Spring 项目作为一级公民支持,我们希望您喜欢它。如果您有任何反馈,请随时通过论坛联系我们,或在我们的 STS 的 JIRA 中提交工单(不仅限于 Bug,也包括增强请求)。我们始终非常欢迎并高度赞赏您的反馈。尽情享受新版本的 Spring Tool Suite 吧。