草庐IT

Spring中bean的生命周期

全部标签

java - 如何从单例 spring bean 内部访问 ServletRequest?

我有一个单例springbean,它被调用以响应某些客户端操作。我希望捕获有关客户端的一些信息(特别是IP地址)。我假设此信息的最佳来源是请求对象。我如何从我的bean中获取对请求对象的访问权?如果这是一个显而易见的问题,请原谅我,我是Spring的新手。我试过一件事没有成功。:((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest().getRemoteAddr();但是由于currentRequestAttributes中的IllegalStateException

java - Spring 3.0 MVC 绑定(bind)嵌套对象

为什么spring不绑定(bind)嵌套对象上的值?RegistrationBean上的SecurityQuestion对象分别将问题和答案设置为null、null,尽管在View中使用bean表示法在表单中设置then。bean类:publicclassSecurityQuestion{SecurityQuestionTypetype;Stringanswer;}publicclassRegistrationBean{@ValidSecurityQuestionsecurityQuestion;Stringname;publicSecurityQuestionType[]getSec

java - Spring MVC 3 中的直接字段访问

我想在SpringMVC3中对“命令对象”使用直接字段访问。有没有等同于useDirectFieldAccess()注释Controller的方法?我在文档中找不到任何内容。 最佳答案 您可以使用@InitBinderController方法上的注释,然后是initDirectFieldAccess在收到的WebDataBinder上,文档是here. 关于java-SpringMVC3中的直接字段访问,我们在StackOverflow上找到一个类似的问题:

java - "classpath:"前缀是 Spring 特有的,还是 JVM 的概念?

我的web.xml中有这个:contextConfigLocationclasspath:spring-config.xml我怀疑这是只有Spring使用的约定?如果是,加载我的应用程序是否会花费更长的时间,因为我没有指定直接文件位置,但现在它必须搜索整个类路径? 最佳答案 IsuspectthisisaconventionusedonlybySpring?是的,它代表一个ClassPathResource并且是Spring'sResourceabstraction的一部分Ifitis,willittakemyapplongerto

java - 有没有办法向 Spring 指定一个 bean 应该在初始化时使用然后立即丢弃?

我很想知道是否有一个接口(interface)可以用来告诉Spring启动一个特定的bean,调用它的初始化过程(通过afterPropertiesSet()作为InitializingBean,或者通过init-method,或者其他方式),然后将其丢弃。我的用例是一个简单的“完整性检查器”,它将在Web应用程序启动时检查数据库中的有效值。尽管对于我们特定的bean来说开销很小,但是将那个bean永远保留在应用程序上下文中是没有意义的,因为一旦bean初始化,就不再需要它了。我确信这种行为还有其他用例,但我在Spring中还没有发现类似的东西。特别是,我在Spring的Java变体中

java - 我如何确保给定的依赖项包含在我的 Spring 框架应用程序中?

这将是一个很难描述的问题,但这里是。我们正在使用DelphiSpring框架。(http://code.google.com/p/delphi-spring-framework/)假设我有一个UnitA,它声明了由ClassA实现的InterfaceA。同样,我有一个UnitB,它声明了由ClassB实现的InterfaceB。两者都在各自的初始化部分向Spring容器注册了接口(interface)和类。InterfaceA依赖于InterfaceB,但是因为我们使用的是Spring,所以UnitA在其uses子句中没有UnitB。换句话说,我们已经完成了我们的工作——我们已经解耦了

java - 从 3.0 版本开始,Quartz 调度程序不再对 Spring 有用吗?

从Spring3开始,Spring的内部调度功能包括对cron类型表达式的支持,这与Quartz的cron触发器非常相似。为什么有人会想要将Quartz与Spring集成?http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/scheduling.html#scheduling-task-scheduler 最佳答案 是的,例如您需要quarz:如果您需要在运行时添加新作业,或者如果您需要在运行时更改间隔(cron表达式),如

java - JSF 2.0 : Why my ViewScope Beans is re-created even though still on same View

这个问题在这里已经有了答案:@ViewScopedcalls@PostConstructoneverypostbackrequest(1个回答)关闭6年前。在我的.xhtml页面中,我有以下形式:......CustomerTemplate.xhtml是:...//importcss,jsfiles...//Otherthingsonthepage...这是我的ManagedBean:@ManagedBean@ViewScopedpublicclassMrBean{...privateListitems;...@PostConstructpublicvoidprepareItemLis

java - 在 Spring 中重构这个的最佳方法?

privatefinalExecutorServiceexecutorParsers=Executors.newFixedThreadPool(10);publicvoidparse(Listobjs){//...bunchofelidedstuff....CompletionServiceparserService=newExecutorCompletionService(executorParsers);for(finalAsupStoreObjobj:objs){parserService.submit(newParseThread(obj));}}我想对“ParseThread

java - 如何通过 BeanManager 创建和销毁 CDI (Weld) Managed Beans?

我正在尝试使用BeanManager而不是Instance.select().get()创建CDI托管bean的实例。这被建议作为解决我一直遇到的ApplicationScopedbean及其依赖项的垃圾收集问题的解决方法-请参阅CDIApplicationandDependentscopescanconspiretoimpactgarbagecollection?对于背景和这个建议的解决方法。如果您在ApplicationScopedbean上使用Instance编程查找方法,则Instance对象和您从中获得的任何bean最终都依赖于ApplicationScopedbean,因此