问题标签 [spring-ioc]
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 - 测试后 SpringJUnit4ClassRunner 是否仍然不能可靠地调用 DisposableBean.destroy
根据:https: //jira.spring.io/browse/SPR-4103 SpringJUnit4ClassRunner 在测试后不会总是调用 DisposableBean.destroy (*facepalm*!) - 由于 JUnit 的实现问题。
这仍然是真的吗?
我在 scala 中创建测试,如下所示:
而且我发现执行 Service2Test 时,Service1Config 中 bean 的 destroy 方法没有被销毁。
我发现很多文章都建议添加 @After 来明确关闭上下文。这听起来像是一个等待发生的错误(因为如果您忘记在一个测试中添加 @After 清理,下一个测试类将失败,您将不知道为什么)。
如果使用 SpringJUnit4ClassRunner/JUnit 仍然无法做到这一点,是否有一个测试框架会在每次测试后自动调用上下文清理?
java - 春天,LocalDate,java8,arrayindexoutofboundsException
LocalDate
使用应用程序上下文在 Springbean 中实例化正在抛出一个ArrayIndexOutofBoundsException
java - 如何在 Spring 中检查请求范围的可用性?
我正在尝试设置一些代码,如果 spring 的请求范围可用,则以一种方式运行,如果所述范围不可用,则以另一种方式运行。
有问题的应用程序是一个 Web 应用程序,但有一些 JMX 触发器和计划任务(即 Quartz)也会触发调用。
例如
假设myRequestScopedBean
是请求范围。
我知道这可以通过try
-catch
围绕调用来完成myRequestScopedBean
,例如:
但这似乎真的很笨重,所以我想知道是否有人知道一种优雅的 Spring 方式来询问某些东西以查看请求范围的 bean 是否可用。
非常感谢!
spring - Spring Singleton范围的确切含义是什么?
我在 applicationContext.xml 中为同一个类定义了两个具有不同 id 名称的 bean。它工作得很好,所以我混淆了确切的弹簧单例范围的含义。我的代码如下。我在stackoverflow中遇到了一些其他类似的问题。但我不清楚,因为那些不完全相同的上下文和很长的解释。
如果你知道它是什么请分享我
我读到了
1. 容器(上下文)的单个实例,
-- 就我而言,它是否为我的两个实例创建了两个容器?
spring - 将基于注解的 Bean 注入基于 xml 的 bean
我的持久性配置类如下所示:
我有一个 xml 配置类:
所以我想注入用@Bean(在持久性配置类中)注释的名为“ dataSource ”的bean ,我该怎么做?<jdbc-user-service data-source-ref="dataSource" ... >
java - Spring:XML 配置位置
我是spring的学习者,已经使用spring IOC容器构建了我的测试项目,并在我的项目根路径中配置了beans.xml并加载到我的应用程序中并从中获取bean。
项目根目录下的spring.xml
源文件中的 spring.xml
这是加载 beans.xml 文件的另一个代码
我的问题是,在实际项目中创建 xml 文件名和文件位置是否有任何标准或约定。因为在一些阅读文章中,我还发现大型项目可能有多个 xml 文件,如 service.xml 和 dao.xml .
spring - Spring - 无法在请求范围内实例化组件对象
我正在尝试实例化一个组件对象,我<bean>
在 applicationContext.xml 中为其声明了条目。实例化我的目标组件类的流程如下
计算控制器 -> 计算服务 -> 计算组件
在哪里
CalculatorController - 范围 = 请求,使用 @Controller 注释并包含在 webapplicationContext.xml 中的组件扫描中
CalculatorService - Scope = 单例,使用 @service 注释并包含在 applicationContext.xml 中的组件扫描中
CalculateComponent - 范围 = 请求,无注释,从 webapplicationConext.xml 和 applicationContext.xml 中的组件扫描中排除。在 webApplicationContext.xml 中定义了 bean 条目,范围 = request。也包括
<aop:scoped-proxy/>
在<bean>
定义中。
我在 web.xml 中包含了以下条目
请注意,CalculateComponent 有一个 3 参数 ref 对象构造函数,它们三个都<bean>
在 webApplicationContext.xml 中具有单例范围的条目,并且它们没有注释。
当请求发送创建CalculateComponent对象时,spring容器抛出如下错误。
“未找到线程绑定请求:您是指实际 Web 请求之外的请求属性,还是在原始接收线程之外处理请求?如果您实际上是在 Web 请求中操作并且仍然收到此消息,那么您的代码是可能在 DispatcherServlet/DispatcherPortlet 之外运行:在这种情况下,使用 RequestContextListener 或 RequestContextFilter 来公开当前请求。”
请指教。
更新:
当我从 contextConfigLocation 中删除 /WEB-INF/mvc-dispatcher-servlet.xml 并启动服务器时,我得到了 Autowired failed 错误 - “No qualifying bean of type of CalculateComponent found for dependency:”,即使在我从请求中更改了范围之后到单身。
然后我在CalculateService 中注释掉了CalculateComponent 的自动装配,我现在可以看到CalculateComponent 启动了两次(如我的@Serge Ballesta 所述)。所以我得出的结论是,CalculateService 是通过 ContextLoaderListener(applicationContext.xml 中的 bean 条目)在加载 DispatcherServlet 之前启动的(即没有加载 mvc-dispatcher-servlet 中提到的 bean)。
我在 contextConfigLocation 中再次添加了 /WEB-INF/mvc-dispatcher-servlet.xml,但这次是作为第一个条目(即在 applicationContext.xml 之上)。现在,CalculateComponent 再次加载了两次,并且自动装配是在单例范围内完成的。通过此设置,我将CalculateComponent 范围更改回request,但再次出现“我得到No thread-bound request found”错误。
所以问题是,
ContextLoaderListener 试图在 DispatcherServlet(CalculateComponent) 加载/可用之前对其资源进行初始化。
spring - 具有缓存和泛型类型自动装配的 Spring 4
我正在使用最新版本的 Spring,当我尝试两次注入相同的泛型类型并且泛型类型的实现使用缓存时,我遇到了启动错误。
下面是我可以创建的最简单的示例来复制错误。
这编译得很好,但是当我运行应用程序时,我收到以下错误:
No qualifying bean of type [demo.GenericService] is defined: expected single matching bean but found 2: integerService,stringService
我还没有尝试过使用限定符,但我猜这将是一种解决方法。我会在发布后尝试一下。理想情况下,我希望自动装配泛型和缓存以集成开箱即用。我做错了什么,或者我能做些什么来让它工作吗?
谢谢!
java - 如何为 Java 邮件会话配置延迟加载 JndiObjectFactoryBean
我有一个要求,我的 Spring JndiObjectFactoryBean 必须对我的码头服务器中配置的 Java 邮件会话进行延迟查找
以下是我的 jetty.xml 中的邮件会话声明
在我的 Spring bean 定义文件中,我有以下 bean 定义
我不希望 Spring 在启动时查找邮件/GmailMailSession。所以我将“lookupOnStartup”属性设置为“假”。如果我将“lookupOnStartup”设置为 false,Spring 希望我提供一个 proxyInterface。我搜索了很多,但找不到邮件会话的界面。我尝试设置“javax.mail.Session”这是一个类。我得到了以下异常,这是显而易见的
我的问题是是否有任何可用于 Java 邮件会话的接口,我可以将其设置为“proxyInterface”并让惰性查找工作?
java - 抽象父类和子类的Spring配置问题
我正在尝试使以下代码正常工作。基本上我在 mysql 数据库中有一个名为 alert_settings 的表。下面是我如何配置它和类。
下面是我的抽象通用 DAO、警报设置 DAO 接口和实际 DAO 类。
抽象通用 DAO
}
AlertSettingDAO 接口
/li>和 3. AlertSettingDAO 实现类
@Repository 公共类 AlertSettingDAOImplSpring 扩展 GenericDAO 实现 AlertSettingDAO {
}
这是我的主要课程
我哪里错了?如何以正确的方式做到这一点?