Java 如何在Spring2.5.x中使用原型注释?
当移动到Spring2.5.x时,我发现它添加了更多的原型注释(在2.0版本的@Repository之上):@Component、@Service和@Controller。你如何使用它们?您是依靠隐式Spring支持还是定义定制的特定于原型的函数/方面/特性?或者它主要用于标记bean(编译时、概念等)?2.5中的以下原型注释可用于Spring MVC应用程序中,作为XML连接bean的替代方法:Java 如何在Spring2.5.x中使用原型注释?,java,spring,annotations,aspects,stereotype,Java,Spring,Annotations,Aspects,Stereotype,当移动到Spring2.5.x时,我发现它添加了更多的原型注释(在2.0版本的@Repository之上):@Component、@Service和@Controller。你如何使用它们?您是依靠隐式Spring支持还是定义定制的特定于原型的函数/方面/特性?或者它主要用于标记bean(编译时、概念等)?2.5中的以下原型注释可用于Spring MVC应用程序中,作为XML连接bean的替代方法: @存储库-用于DAOBeans-允许 您需要在以下情况下引发DataAccessExceptio
- @存储库-用于DAOBeans-允许 您需要在以下情况下引发DataAccessException: 数据源不可用
- @服务-用于业务bean- 是相当简单的豆子,有一些 设置默认保留策略
- @控制器-用于servlet- 允许您设置页面请求 映射等
@Repository
public class DatabaseDAO {
@Autowired
private SimpleJdbcTemplate jdbcTemplate;
public List<String> getAllRecords() {
return jdbcTemplate.queryForObject("select record from my_table", List.class);
}
}
我发现,除了在xml上添加标记外,还可以对原型注释进行广泛的概述。别忘了在xml上添加此标记
<context:component-scan base-package="com.example.beans"/>
注释不再是MVC特有的。有关更多信息,请参阅。使用@Component注释或其规范的一个示例是带有监视支持的。有关示例,请参见。此监视支持是通过加载时AspectJ weaving添加的
总之,在Spring容器启动后的运行时,或者在AspectJ编织的编译/加载时,可以在不同的设置中使用注释。各种原型注释的语义都记录在javadoc中。您认为新的(2.5)版本原型仅适用于Spring MVC?这三个高级注释可视为MVC特有的。您可以将它们重新用于其他目的,但如果在将来的版本中更改它们,您可能会遇到升级问题@组件是通用的bean连接注释,可以很容易地在MVC领域之外扩展和使用。@Component注释不是特定于MVC的,但是OP问题中列出的其他注释都是特定于MVC的。seanhodges:No、@Repository、@Controller和@Service都属于org.springframework.context模块@也是@Component专门化的端点是SpringWS特定的,是org.springframework.WS.java5模块的一部分。Spring3参考文档中的一个片段(不是MVC特有的):在Spring2.0和更高版本中,@Repository注释是任何满足存储库角色或原型(也称为数据访问对象或DAO)的类的标记。该标记的用途之一是自动翻译异常。
@Controller("/index.html")
public class IndexController {
@Autowired
private DataService dataService;
@RequestMapping(method = RequestMethod.GET)
public String doGet(ModelMap modelMap) {
modelMap.put(dataService.getDataAsList());
return "index";
}
}
<context:component-scan base-package="com.example.beans"/>