草庐IT

injecting

全部标签

java - 如何使用 Weld 轻松注入(inject)字符串常量?

我们有一种情况,我们以Map的形式为我们正在运行的程序提供外部配置。我发现JSR-330依赖注入(inject)提供了一种更简洁的方法来在代码中使用该配置映射,而不是传递映射或使用JNDI来获取它。@Inject@Named("server.username")Stringusername;让JSR-330实现自动填写此字段。使用Guice我可以设置值bindConstant().annotatedWith(Names.named(key)).to(value);我希望能够在Weld中做同样的事情(将“server.username”绑定(bind)到例如“foobar”)并且我知道该

java - 注入(inject)私有(private)、包裹或公共(public)领域或提供二传手?

我看到许多Java示例使用依赖注入(inject)和私有(private)字段而没有像这样的公共(public)setter:publicSomeClass{@InjectprivateSomeResourceresource;}但是当应该手动执行注入(inject)时,例如在单元测试中,这是一个坏主意。有几种可能性可以解决这个问题:添加一个公共(public)setter:setSomeResource(SomeResourcer)公开该字段使现场包受到保护我想避免使用setter,因为它实际上什么也没有发生。所以我更喜欢public或packageprotected。你有什么建议吗

java - 在注入(inject)点带有限定符 [@Default] 的类型 [...] 的不满足依赖关系(将 @Stateful EJB 与 CDI 结合使用)

我有以下代码来管理两种存储库。两个存储库类都继承了一个接口(interface)以允许重新初始化它们的资源。publicinterfaceCachingRepository{publicvoidinvalidateCache();}全局的、应用范围的存储库:@Named("globalRepo")@ApplicationScopedpublicclassGlobalRepositoryimplementsCachingRepository{privateListcategories;...@OverridepublicvoidinvalidateCache(){categories=n

java - Guice 注入(inject)通用类型

我正在尝试使用Guice注入(inject)通用类型。我有位于Cursor类中的Repository。publicclassCursor{@InjectprotectedRepositoryrepository;所以当我创建Cursor时,我还希望Guice将我的存储库注入(inject)到Repository。有办法做到这一点吗? 最佳答案 你必须使用TypeLiteral:importcom.google.inject.AbstractModule;importcom.google.inject.TypeLiteral;publ

java - Guice - 如何通过多个注入(inject)器/模块共享同一个单例实例

在guice中,@Singleton范围不引用Singleton模式。根据《Dhanji》的《DependencyInjection》一书:Verysimply,asingleton’scontextistheinjectoritself.Thelifeofasingletonistiedtothelifeoftheinjector(asinfigure5.8).Therefore,onlyoneinstanceofasingletonisevercreatedperinjector.Itisimportanttoemphasizethislastpoint,sinceitisposs

java - SQL 注入(inject)通常如何在 Spring/Hibernate 设置中停止

我讨厌Ruby语言,因为它不是静态类型的,但我花在Spring/Hibernate上的时间越多,我就越欣赏RubyonRails的特性。特别是他们的ActiveRecord模型可以为您防止SQL注入(inject)。Spring/Hibernate堆栈通常如何处理这个问题?其中任何一个都带有某种清理工具包,以确保您的用户输入是安全的吗?如果您只是插入DAO,这对插入来说不是什么大问题,但在使用Select语句时这是一个主要问题。 最佳答案 当您使用Hibernate时,SQL注入(inject)应该不会有风险-只要您正确使用它。Hi

java - 寻找 Dagger 辅助注入(inject)的示例

来自dagger-discuss@:我有一个类在运行时从对象图中获取一些依赖项,并从调用者获取其他依赖项。publicclassImageDownloader{//Getthesedependenciesfromtheinjector.privatefinalHttpClienthttpClient;privatefinalExecutorServiceexecutorService;//Getthesefromthecaller.privatefinalURLimageUrl;privatefinalImageCallbackcallback;...}我想出了一个解决方案,我定义了一

java - 如何使用CDI进行方法参数注入(inject)?

是否可以使用CDI将参数注入(inject)方法调用?预期的行为类似于字段注入(inject)。查找首选生产商并使用该产品。我想做的是:publicvoidfoo(@InjectBarbar){//dostuff}或者这个(语法不那么困惑):publicvoidfoo(){@InjectBarbar;//dostuff}这种语法在这两种情况下都是非法的。有其他选择吗?如果不是-如果可能的话,出于某种原因,这会是个坏主意吗?谢谢编辑-我的要求可能不够明确-我希望能够直接调用该方法,将bar变量的初始化留给容器。JörnHorstmann和Perception的回答表明这是不可能的。

python - 使用装饰器在 __init__ 之后注入(inject)函数调用

我正在尝试找到创建类装饰器的最佳方法,该类装饰器执行以下操作:向装饰类中注入(inject)一些函数在调用装饰类的__init__之后强制调用这些函数之一目前,我只是保存对“原始”__init__方法的引用,并将其替换为调用原始函数和附加函数的__init__。它看起来类似于:orig_init=cls.__init__defnew_init(self,*args,**kwargs):"""'Extend'wrappedclass'__init__sowecanattachtoallsignalsautomatically"""orig_init(self,*args,**kwargs

python - psycopg2 和 SQL 注入(inject)安全

我正在编写一个类,用作更大的建模算法的一部分。我的部分进行空间分析以计算从某些点到其他点的距离。有多种条件,包括返回距离的数量、截止距离等。目前,项目规范仅指示硬编码情况。即“函数#1需要列出点集A到点集B在500米内的所有距离。函数#2需要列出点集C到点集D的所有距离......”等等。我不想对这些参数进行硬编码,开发下一阶段模型的人也不想,因为显然他们想调整参数或可能在其他项目中重用该算法有不同的条件。现在的问题是我正在使用psycopg2来执行此操作。这是我工作的标准,所以我没有选择偏离它的选择。我已经读到,由于SQL注入(inject)的明显原因,公开将作为参数放入执行的查询中