问题标签 [jsr330]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - 如何从 JSR 330 Spring 应用程序中删除 NullPointerException
我正在按照http://www.mkyong.com/jsf2/jsf-2-0-spring-integration-example/的指导方针实施 Spring+JSF 应用程序,但我使用的是最新的 Spring 版本(即 3.x,它根据文档,已经包含 JSR 330 实现,所以这应该不是问题)和我自己的类,这就是与上述示例的区别。
我坚持NullPointerException
认为 bean(充当 JSF 管理的)bean 没有收到 Spring bean 实例的注入。@Named
所有 bean 在适当的位置 ( , )使用 JSR 330 注释,@Inject
并且 bean 的接口和变量(在@Inject
注释下)遵循通常的命名模式......
那么 - 如何调试这种情况。例如,有没有办法查看 Spring 应用程序上下文中的所有 bean。例如,我们可以确定 Spring 上下文未正确初始化。也许还有其他方法可以查看应用程序中发生的事情(调试注入)?
java - Picocontainer 中的 JSR-330 支持:@Inject ... @Named("xxx)
我们找到了类似的代码
(利用 JSR-330 注释)对于传入“s”的字符串值非常有用。我们希望在使用哪个容器方面尽可能灵活,因此 Picocontainer 也是如此。
正如所写,Picocontainer 默默地忽略了注入。我将如何提示 PicoContainer 注入例如“注入字符串!” 这里?
spring - WebSphere 7 中使用 Spring(JSR 330 注释)的依赖注入不起作用
我有一个使用 Java 6、Spring Framework 3.1.2 和 Mule-ESB 3.3.0 以及与此问题无关的其他库构建的企业应用程序。
我们的 bean 和服务都使用 JSR-330 注释声明@Named
,@Inject
分别用于自动组件扫描和依赖注入(没有 EJB,只有服务 bean)。当部署到 JBoss 4.2.3(我们的测试环境)中时,一切正常。但是,当部署到 WebSphere 7 中时,JSR-330 注释似乎不起作用。标记 的 bean@Named
根本没有被检测到。
我可以保证一切都配置正确(因为它在 JBoss 中工作)。具体来说,<context:component-scan />
具有base-package
正确定义的scope-resolver
属性和正确配置使用的属性Jsr330ScopeMetadataResolver
(我们也尝试过不使用它)。
我知道 WebSphere 7 (7.0.0.23) 可能不支持这种注释。我还没有用 Spring 等价物对其@Component
进行测试。@Autowired
不幸的是,我们非常希望使用 JSR 330 注释,这样我们的类就不会直接依赖于 Spring,即使我们在底层使用了 Spring Framework。
尽管如此,尽管我花了一整天的时间寻找关于 WebSphere 7 不支持 JSR 330 注释的明确声明,但到目前为止我还没有找到任何东西。
此外,我不明白为什么它不起作用,因为我假设 Spring Framework 是通过文件<context:component-scan />
中的指令完成所有工作的框架application-context.xml
。
任何人都可以为这个问题带来一些启示吗?
有没有办法通过 WebSphere 7 中的注释激活依赖注入?
如果我从 JSR 330 @Named
/@Inject
注释切换回 Spring 自己的注释,@Component
它@Autowired
可能会起作用吗?
在绝望的尝试中,我是否可以扩展 SpringComponentScanBeanDefinitionParser
以使其即使在 WebSphere 7 中也能检测到 JSR 330 注释?
如果没有任何效果,我最终将退回到纯 XML 配置。然而,这是非常不可取的,因为将有数百个 bean 需要在 XML 中手动配置。
spring - 使用 spring/JSR-330 注入地图时出错
我有 2 个 Maven 项目、一个网络应用程序和一个“服务”项目。我正在使用弹簧将所有东西连接在一起。我想在我的 application-context.xml 中创建一个地图,并将其注入我的班级。当我尝试启动我的 Web 应用程序时,我收到一条错误消息。
这是我的课:
和 application-context.xml:
我收到以下错误:
当我在我的应用程序上下文中定义一个字符串并且构造函数将它注入到一个类中时,这有效,我怎样才能对地图做同样的事情?
spring - 如何以“IoC 容器”独立的方式使用 jsr 330 注释?
如果问题不清楚,请原谅我的语言。我想使用 JSR 330 注释。而且我希望能够切换我的 DI 提供商。目前,我的应用程序必须在某些时候知道它必须使用 spring 或 google-guice。有什么办法可以避免这种情况。
现在我必须打电话:
获取应用程序上下文以获取 bean。我的理解是,对于 google-guice,我将使用 google-guice 特定代码。
我的理解是正确的还是我完全错过了一些东西。
spring - 使用 Spring 创建非 bean 实例
我敢肯定这已经被问过一百次了,但我似乎找不到这个问题,所以请随时向我推荐其他 stackoverflow 答案。
大多数 Spring 用户对需要注入的非单例 bean 的对象做了什么?例如,我有像 Customer 这样的类,我想每次都实例化一个新的类。可以说它是一个实体,我想注入侦听器以在 @PreRemove 或其他地方进行迭代。通常的解决方案是使用@Configurable,但这似乎是一种解决方法,我想知道是否有更规范的方法来处理这些问题。
我唯一能想到的就是在我的 CustomerRepository 类中创建一个工厂 newCustomer 实例方法,该类是一个托管 bean。然后,我没有将侦听器注入 Customer(最自然的地方),而是将它们注入 CustomerRepository 并将它们指定为 Customer ala new Customer(injectedListeners)的显式构造函数参数。
人们倾向于只使用 Configurable 还是有更好的方法来注入非单例实例?还是大多数用户都像上面那样创建工厂方法?实体示例只是一个示例,我还有其他非单例对象,通常是新的但需要注入。
像 Guice 这样的处理方式会有所不同吗?您将如何仅使用 JSR-330 功能来做到这一点?
java - Spring MVC 中的 @Named 注解
根据 Spring 3 文档IoC 容器,@Named
注解是等同于@Component
注解的标准。
由于@Repository
,@Service
和@Controller
are all @Component
,我尝试@Named
在我的 Spring MVC 应用程序中使用它们。它工作正常。但我发现替换的@Controller
似乎有一个错误。在控制器类中,最初是
它工作正常。当我@Controller
改为@Named
它失败并出现错误:
“没有为带有 URI ... 的 HTTP 请求找到映射”。
但是,如果我@RequestMapping
按以下方式添加到课程中
它会按预期工作。
对于@Repository
and @Service
,我可以简单地将它们替换@Named
为没有问题。但更换@Controller
需要额外的工作。我在配置中缺少什么吗?
regex - 针对特定字符串的否定断言的正则表达式
什么是使用 javax.validation.constraints @Pattern 的正则表达式让用户无法选择用户名,例如“admin”或“manager”?
我不明白如何使用“?!” 表示必须排除的单词。您能否建议一些仅排除“admin”字符串的示例,我会弄清楚其余的。
java - 是否可以在 Dagger 和 CDI 之间共享通用 JSR 330 代码?
我是Agorava的技术负责人,这是一个帮助使用社交网络数据的框架。
今天,Agorava 构建在 CDI 之上,以简化其在 Java EE 堆栈中的使用,但我们希望提供一个带有 Dagger 的实现,以便为 Android 提供更轻的解决方案。
我的问题是:我们可以在 CDI 和 Dagger 实现之间共享通用的 JSR 330 兼容代码吗?换句话说,Dagger 是否可以在带有 JSR 330 注释的 jar 中编译代码,并且源代码在 Dagger 特定的 Jar 中扩展或使用此代码(带有@Provides
和@Modules
其他 Dagger 特定项)?
如果答案是否定的,那么用 Dagger 编译器编译我的通用 JSR 330 jar 并在我的 CDI 实现中使用它有什么问题吗?更准确地说@Inject
,限定符和其他 JSR 330 细节将在运行时仍然可用,并且带有这些注释代码的类是否不会受到 Dagger 编译器的影响?最后,是否有一种对 Dagger 生成的代码(类名、注释)的跟踪器,以允许 CDI 检测并忽略它?
java - 单元测试 JSR-330 注入对象
我以前使用过 Spring DI,我认为的好处之一是我可以在不涉及 Spring 的情况下测试我的 Spring bean 类(为简洁起见省略了导入):
现在我正在试验 JSR-330,这意味着不显式编写 setter。
到目前为止,我一直在使用 Hk2,纯粹是因为一些关于 Jersey 与 Hk2 相关联的轶事,并且很难与其他 JSR-330 实现共存。
我有一半预计会发生一些神奇的事情,@Inject 注释导致设置器可用,但事实并非如此:
- 我如何(方便地)在不调用框架的情况下测试这种带注释的类?
- 如果做不到这一点,我如何以可移植的方式调用框架(即,不将我的测试代码紧密耦合到 Hk2、Guice 等)
- 如果做不到这一点,那么测试以这种方式注释的类的典型、干净的方法是什么?