我用@Repository、@Resource、@Component、@Service注解了我的类,但这些类必须在两个环境中运行。第一个环境是基于Spring2.x的,而另一个环境根本没有Spring。我确信,如果没有spring jar,代码将会失败&我想知道您对如何保留注释但仍能在这两种环境中工作的想法。
发布于 2010-03-19 06:28:31
为了能够使用您提到的注释,或者让Spring为您使用它们,以便您获得好处,您至少需要使用Spring2.5.x,因为它们是在那时引入的。
此外,注解不需要在类路径上。它们将会被忽略。因为当你使用Spring2.0时,不会有代码试图“扫描”它们。
发布于 2010-03-18 16:45:41
对于Java中的每个批注,都有一个对应的类文件。如果您发现使用了哪些注释,则可以将类文件复制到其他环境。
我不确定这些类是否依赖于其他类;它们可能不依赖于其他类,因为注释是不可变的纯数据对象。如果类也有方法,您可以重新编译(使用相同的序列化ID)不带方法的注释源(即只有字段),以便在其他环境中使用。
发布于 2010-03-20 23:41:18
如果它强迫你让你的类直接依赖于它,那它就不是spring。
您可以定义自己的注释,这些注释与spring验证的注释具有相同的用途。例如,定义com.yourcompany....Component等。
我假设您在spring配置中使用了<context:component-scan .../>。只需添加use-default-filters="false"并定义自己的过滤器来匹配您的注释即可。
寻找实际执行繁重工作的PostProcessors。可以将它们配置为使用另一组注释。PersistenceExceptionTranslationPostProcessor检查@Repository。可以将此PostProcessor配置为使用注释的等价物。
https://stackoverflow.com/questions/2468390
复制相似问题