Tag: jsr330

Weld / CDI最好的调试技巧是什么?

Java EE 6的优点之一是新的dependency injection框架 – 带有Weld参考实现的CDI – 它促使我们以一种与实现无关的方式开始内部迁移到JSR-330,明确的目标是能够拥有核心jar被冻结,然后能够添加额外的jar子,提供新的模块替换核心jar中的function。 我现在正在与Weld一起完成上述工作,并且坦率地说,封面背后有太多的魔力。 无论是有效还是无效,默认情况下它不会提供很多帮助,因此您可以调查出错并修复它。 我希望有切换开关可以轻松实现以下function: 扫描了哪些类路径条目以及在哪里? 结果是什么? 什么豆可以注射哪个类? 是什么导致给定的bean以后不被考虑? 一个给定的jar子? 换句话说,我需要更详细地看待决策过程。 出于某种原因,Guice不需要这样做,也许是因为魔法少得多,也许是因为错误消息非常好。 您如何调试Weld应用程序,以及它有多大帮助?

Spring MVC中的@Named注释

Per Spring 3文档, IoC容器 , @Component注释注释是与@Component注释等效的标准。 由于@Repository , @Service @Controller和@Controller都是@Component ,我试图在我的Spring MVC应用程序中使用@Named用于所有这些。 它工作正常。 但我发现@Controller的替换似乎有一个bug。 在控制器类中,原来是 @Controller public class MyController{ … } 它工作正常。 当我将@Controller更改为@Named @Named public class MyController{ … } 它失败了,错误: “找不到带有URI的HTTP请求的映射……”。 但是如果我将@RequestMapping添加到类中,如下所示 @Named @RequestMapping public class MyController{ … } 它会按预期工作。 对于@Repository和@Service ,我可以简单地用@Named替换它们,没有问题。 但是@Controller的替换需要额外的工作。 我在配置中缺少什么?