我可以将手动实例化与自动布线结合起来吗?
好的.我不确定如何问这个问题,这是我一定缺少某些东西的标志.我能做的最好的是:"有没有一种方法可以手动实例化对象并仍在该对象中使用注射?" 具体地,说我有: class A { public A(MyObject1 obj1, MyObject2 obj2, ..., MyObjectn objn) { ... } } 我想将所有这些对象连接到MyObjectn之外.据我所知,如果我在上面的构造函数的前面使用@Autow,那么我应该只在使用该类的实例的代码中实例化该对象: @Autowired A a; 这不允许我手动传递构造函数中的OBJN.有没有办法在使用该类实例的代码中手动初始化A的限制? 解决方案 简短答案 - 不. 您要么使用ioc,要么手动实例化对象. 我想到的一个解决方法: 创建一个服务,每个MyObject1为@Autowired 在此服务中创建一个方法: public A createA
6 2024-03-31
编程技术问答社区
不使用autowire的Hibernate验证器
我目前正在从事一项泽西岛项目,并决定将Hibernate验证器用于参数验证.在端点类中注入的所有依赖项均适当初始化.但是,对于约束效果类中的这些依赖性,它总是抛出NPE.因此,我遵循了Spring+Hibernate指南的指南和注册 bean id =" valiorator" class =" org.springframework.validation.beanvalidation.localvalidatorfactorybean" 并将@Autowired注释用于需要注入约束效果类中的服务. 使用它有副作用吗?有没有办法避免在约束效果类中进行自动注释并仍在注入值?我尝试在上下文中手动注册CondraintValidator类,为BEAN,添加了我需要的服务的属性引用,但是它引发了零指针异常. 解决方案 " Hibernate验证器-JSR 303参考实现 - 参考指南"说明了一些门户: 警告 任何依赖约束效果的约束实现 实施特定的行为(依赖注
14 2024-03-29
编程技术问答社区
在JSF中使用Spring'的LocalValidatorFactoryBean
我试图将bean注入自定义ConstraintValidator.我遇到了一些事情: CDI在验证-API-1.1.0(可用Beta)中得到支持 Hibernate验证器5似乎可以实现验证-API-1.1.0(可用的Alpha) 使用接缝验证模块 使用Spring的LocalValidatorFactoryBean 最后一个似乎最适合我的情况,因为我们已经使用了春季(3.1.3.release). 我已将验证器工厂添加到XML应用程序上下文中,并启用了注释:
8 2024-03-29
编程技术问答社区
当被Sessionfactory.getCurrentSession.merge调用时,ConstraintValidator中的@Autowired Bean null
我刚刚使用Hibernate实施了Bean验证. 如果我明确调用验证器,它可以按预期工作,并且我的@Autowired dao bean(连接到DB)将按预期注册. 我以前曾发现,我需要在上述工作之前添加以下声明.我之前曾广泛使用@Autowied Bean,但以下声明是必须通过Spring管理验证器并将Bean注入约束效果. . 但是,当session factory.getCurrentsessession中自动调用验证器时,bean为null. 如果我直接调用呼叫javax.validation.validate. 我已经阅读了一个人无法获得dao bean @autowied的帖子的数字,但是在我的情况下,在合并期间被调用. 下面的日志输
18 2024-03-29
编程技术问答社区
两个类中的自动连接的Bean在从第二个类访问它之后没有被更新
我有以下方案: bean在两个类中自动启用,我在一个类中填充了bean,然后在第二类中检查bean,它没有填充.鉴于,当我在班级中添加一个getter时,我填充了bean并致电getter时,它将返回填充的bun.为什么我不能直接在其他类中访问该豆子,因为它在春季的上下文中充当单例,所以不应该填充它? junit4测试类从xml文件加载弹簧上下文: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "/spring/test-main-context.xml" }) public class MyTests { @Autowired MyObject myObject; @Autowired MyUtils myUtils; @Test public void testingContext() { m
16 2024-03-21
编程技术问答社区
Spring MVC的自动连接HttpSession何时会被创建?
使用自动httpsession的问题: logincontroller调用loginService通过httpservletrequest作为参数. 我在其他几个注释的类中自动自动httpsession(但不是在loginservice中): @Autowired private HttpSession httpSession; 在loginservice类中,如果我尝试通过调用request.getSession(false)来获得会话,则在某些情况下会收到null. 如果我尝试通过调用request.getSession(true)来获得会话,我最终将使用两个httpsession对象(一个在这里,另一个通过自动发动机). 如果我在LoginServic类中自动使用Httpsession并从那里使用会话,那么我也将以两个httpsession对象结尾. 何时创建何时创建自动化的httpsession?处理这种情况的最佳方法是什么? 谢谢
10 2024-03-21
编程技术问答社区
Spring @Autowired Bean给出了null
在一个部分中,我得到了NullpoInterException,在代码的另一部分是可以的. @Controller @RequestMapping(value="/event") public class EventController { @Autowired EventValidator eventValidator; @Autowired private EventService eventService; @InitBinder private void initBinder(WebDataBinder binder) { System.out.println(eventValidator.toString());
8 2024-03-21
编程技术问答社区
如何用非空的构造函数自动连接一个类?
我想@Autowired一个具有非空构造函数的类. 仅作为一个例子,它不必是视图/服务.可以是您喜欢的任何组件,具有非默认构造函数: @Component class MyViewService { //the "datasource" to show in the view private List companies companies; private MyObject obj; public MyViewService(List companies, MyObject obj) { this.companies = companies; this.obj = obj; } } 当然我不能只写 @Autowired private MyViewService viewService; 我想将构造函数与列表一起使用.但是如何? 是否有比将这些构造函数重构为setters更好的方法?我不希望
10 2024-03-21
编程技术问答社区
如果@Autowired被设置在只被声明但没有使用setter/constructor初始化的属性(Class)上,那么@Autowired是如何工作的?
使用Spring,我有一个"基本控制器"类,并使用自动启动注入碱.即使班级没有发挥作用,自动发动机的工作方式也是如此.检查下面的代码 @Controller class BaseController{ @Autowired private BaseService baseService; //...... } 和xml中的bean定义为 我不是用setter/构造器初始化baseService. 它如何工作,当我将方法称为如下所示 时 baseService.methodOne(); 解决方案 春季框架依赖 spring ioc (在这里,您用注释Autowired注释字段baseService,该Autowired将指示 spring ioc容器
10 2024-03-21
编程技术问答社区
com.demo.service.NmpAppService中构造函数的参数0需要一个名为'entityManagerFactory'的豆子,但无法找到。
我试图在Java Spring中运行简单的API流,我会收到以下错误: *************************** APPLICATION FAILED TO START *************************** Description: Parameter 0 of constructor in com.nmp.bts.webapps.bsc.btbsc.service.NmpAppService required a bean named 'entityManagerFactory' that could not be found. Action: Consider defining a bean named 'entityManagerFactory' in your configuration.>
10 2024-03-21
编程技术问答社区
自动连接实现相同接口的Bean-如何在JUnit测试中自动连接一个特定的依赖Bean?
我有一个弹簧3.1/java/tomcat应用程序.我有一个服务类,如下: public class SomeServiceImpl implements SomeService { @Autowired public AnotherService anotherService; // other code... 这使用了自动启用的另一个服务类AnotherService.这两个服务类都在ServiceContext.xml文件中声明. 我正在编写Junit来测试Someserviceimpl并使用自动注入测试的类(SomeService)以及模拟(EASYMOCK)的依赖类(Anotherservice). AnotherService的EASYMOCK依赖性在testContext.xml中定义,如下所示:
6 2024-03-21
编程技术问答社区
Spring自动布线对Tomcat classpath上的类停止工作
在我的库中FooLibrary.jar Spring Instantiates class com.example.FooImpl具有属性bars.我有很多Bar实例,春季也实例化.一组杆被自动FooImpl这样: @Component public class FooImpl { @Inject private Set bars; 在独立的应用程序中,Spring实例化Bar实例,实例化FooImpl实例,然后使用Bar s的集合进行自动FooImpl.bars.它有效. 现在,我正在tomcat内的WebApp中运行相同的弹簧配置. FooLibrary.jar在WEB-INF/lib内部,一切继续如上所述. 问题是Web应用程序会使用JavaCompiler,无法找到动态编译除非我将该库放在启动Tomcat路径上.我将FooLibrary.jar添加到tomcat classpath(例如,在eclipse内的tomcat的启动配置中,或者我
8 2024-03-21
编程技术问答社区
在Spring Data JPA环境中与JUnit的自动连接问题
我的单位测试中有@Autow的问题. 这是相关类和XML文件: 服务类别: @Service(value = "statusService") public class StatusService implements DefaultService { @Autowired(required = true) private StatusRepository statusRepository; public void save(Status value) { statusRepository.save(value); } } 接口: public interface DefaultService { @Transactional void save(T value); } (我还测试了一个非通用接口,但结果是相同的.) 测试类: @ContextConfiguration(locations
8 2024-03-21
编程技术问答社区
Spring:将DAO自动连接到实用程序类中的做法不可行
我在JBOSS Web MVC样本后具有注释驱动的Spring MVC项目. (春季,冬眠,JPA 2.0) 我有一个实用程序包,我想在其中放置可重复使用的类别的实用程序功能. 具体来说,我有一个登录课程,我想查询数据库以获取信息. 我在那儿自动dao,但是当我调试时,dao总是无效的,并且有例外. 我已经阅读并尝试了很多东西 - 我知道我可能已经遇到了解决方案 - 但错过了一些东西,然后继续尝试其他事情.由于注释对我来说是新的,因此我可能不是谷歌搜索正确的条款. (我已经与Spring&Hibernate一起工作了多年 - 但是与XML一起) 我已经将其添加到我的applicationContext.xml 我认为这是我需要做的. 这是我目前在登录类中所拥有的 - 但它不起作用,关键worddao始终是无效的.我认为,如果我将DAO连接到Applicati
14 2024-03-21
编程技术问答社区
在xml和配置中定义两个相同的豆子是可以的。
我创建了XML上下文配置,也创建了一个基于注释的上下文配置类,每个bean都具有相同的ID,同一类. 所以我认为这会造成冲突,因为Spring会说"找不到TTT.TTT类型的唯一实例"(我在其他地方看到了此错误).但令人惊讶的是,以下代码实际上运行良好,而选择的bean是XML的代码.如果我划出任何一个bean定义,它也可以正常工作. 那么,为什么我没有得到豆定义冲突? package ttt; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import o
8 2024-03-21
编程技术问答社区
编译时编织空指针异常
编辑7: 问题似乎是如何获得@Configurable使用HttpSessionListener,建议解决方法,但我希望直接与WebApplicationContext互动: : @Configurable(autowire = Autowire.BY_TYPE, preConstruction = true) public class SessionListener implements HttpSessionListener { private static final Logger log; @Autowired private A a; @Override public void sessionCreated(HttpSessionEvent se) { a.doSomething(); //
14 2024-03-21
编程技术问答社区
自动连接不工作,依赖性为空
我当前已经设置的项目: 控制器: package com.frclocks.district.controller; :imports: @Path("/districts") @Controller public class DistrictController { @Autowired private DistrictService districtService; @GET @Produces(MediaType.APPLICATION_JSON) public List getDistricts() { return districtService.getAllDistricts(); } } 服务(inmp): package com.frclocks.district.service; :imports: @Service("districtService")
4 2024-03-21
编程技术问答社区
没有自动布线的弹簧组件扫描?
在不使用春季自动启动的情况下使用组件扫描是否有意义? 我喜欢在MVC环境上为控制器进行组件扫描的想法,地狱,我甚至想避免在XML上宣布所有Daos,Services .... 但是,我不是自动启动的忠实拥护者,因此,仍然可以使用XML配置文件手动注入所需的bean,还是只是一个非sense? 更新:使用@Autowired而不是通过XML明确声明的优势是什么(请不要提供"少XML配置"作为优势) 解决方案 我会 在实现类中添加@Component,以便为每个bean创建一个bean 不关联@Autowired/@Resource与其他类别中这些实现相对应的成员声明,​​因此Spring不能autowire他们. 使用节点和元素在XML中定义需要这些组件豆的位置,通过setters或将它们注入它们. 示例: 接口: package com.krovi.compscan;
6 2024-03-21
编程技术问答社区
自动连接Spring 3.2独立应用程序失败
这是我第一次在Stackoverflow上找到解决问题的解决方案: 我正在尝试使用基于注释的Autowwiring创建可执行的JAR独立应用程序,但是我无法获取可运行的JAR文件(从Eclipse导出为可运行的JAR文件)来完成其作业.它确实直接从Eclipse作为Java应用程序运行,而不是通过Console > java -jar test.jar. 作为独立应用程序运行. Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.
12 2024-03-21
编程技术问答社区