问题标签 [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 - 带有 @Bean 注释的 BeanPostProcessor 不起作用
我正在尝试创建一个BeanPostProcessor
用于将一些值注册到地图。
如果我通过 xml 定义创建 bean 实例,则工作正常BeanPostProcessor
,但如果我将 bean 定义更改为@Configuration
它不起作用。
后处理器
豆配置
组件扫描配置
如果我使用上述配置,应用程序就会挂起。但是,如果我使用下面给出的基于 xml 的配置,它就可以正常工作。
我在这里做错了什么?
spring - 春季创建 bean 失败
这是日志
这是我的 xml 文件中的条目..
帮我解决问题提前谢谢..
spring - Spring InitializingBean 接口
在 spring 的 XML 文件中,我们有两个 id 不同但类相同的 bean。它们具有相同的属性。现在我有 InitializingBean 接口,并且在afterPropertySet()中我只是打印属性的值。
它为我打印两次值?
java - 具有动态键和值的 Spring bean 映射
现在我已经在 spring bean 映射中应用了相关的数据,并将这个映射作为参考传递给其他类。
地图定义如下
此映射在其他 bean 中称为
我只想从数据库表中检索映射值并将其注入其他类。我怎么能在春天做到这一点。基本上,该表包含与应用程序相关的数据。地图的键和值将是 int,Configuration。
加载配置数据的最佳位置是什么?我们可以使用spring beans map还是有任何其他好的方法来从数据库加载配置并将其引用到服务、委托和DAO等应用程序的其他地方?
帮助将不胜感激
谢谢
spring - 惰性初始化的 Spring 默认行为
我是spring的初学者,ESP控制反转。我很困惑理解以下之间的区别
据我了解:lazy-init=false 在启动时创建 bean,而 lazy-init=true 不在启动时创建 bean,而是根据对特定 bean 的请求创建 bean。在这里纠正我,如果我的解释是错误的。
惰性初始化的默认行为到底是什么?它将如何实例化?
java - 实现 Spring IOC 时如何避免使用 ApplicationContext.getBean()
我刚刚开始使用 Spring IOC 概念。我经常看到在互联网上找到的大多数示例都使用代码来获取对象。
作为stackoverflow中这些问题1和2的参考。我推断,没有必要在代码中使用 appContext.getBean("hello") ,这被认为是不好的做法。另外,不推荐了。在这里纠正我,如果我的推断是错误的。
考虑到这一点,我对我的项目进行了相应的更改。这是我的 applicationContext.xml
我的 contextProvider 类代码
例如,考虑一个依赖于 org.hd.derbyops.DUtils 的 A 类。我正在使用以下代码行
为了在 A 类中获取 DUtils 对象,从而避免 ApplicationContext.getBean()
在我的代码中使用任何地方。
假设,如果我有 10 个类,并且我的类 A 依赖于所有这些类,则无需使用ApplicationContext.getBean()
. 在那种情况下,如上所述,我想创建 ContextProvider 类的属性,然后是该属性的 setter 和 getter,其中 inget<PropertyName>
是静态的。这样,我可以在需要对象的任何地方使用它,就像这样
这是我的简短问题。首先,我的方法对吗?如果是对的,在启动的时候加载所有的bean,会不会是性能杀手?如果不至少多次调用 getBean,您将如何在应用程序中做到这一点?
如果您要设计一个 Web 应用程序并且您要实现 Spring IOC,而不使用ApplicationContext.getBean()
任何代码。你会怎么做?
注意:参考上面标记的其他问题
调用 ApplicationContext.getBean() 不是控制反转!
spring - 是否可以在 Spring 中自动装配 bean 名称?
是否可以使用注释而不是使用BeanNameAware
接口在 Spring 中自动装配 bean 名称?
spring - Spring注解是如何工作的?
动机
作为我之前关于类加载的问题的后续行动
我很好奇注释在流行的 Spring 框架中是如何工作的。
可能的解决方案
据我了解,可能会使用两种机制:
1. 类加载上的字节码注入
Spring 可以使用自己的类加载器来加载所需的类。在运行时,当类被加载并且 Spring 确定它具有一些适当的注释时,它会注入字节码以向类添加额外的属性或行为。
因此,@Controller
可能会更改带有注释的控制器以扩展某些控制器基类,并且在使用注释时可能会更改函数以实现路由@RequestMapping
。
2. 用于实例化的反射
@Autowired
可以由 BeanFactory 在运行时通过反射读取,以处理实例化顺序并实例化配置的属性。
问题
Spring 注解如何真正起作用?
java - Spring bean 作用域:session 和 globalSession
Spring框架中的session和globalSession有什么区别?
根据我的研究,两者在 Web 感知 Spring ApplicationContext 的上下文中都是有效的。
现在,会话 bean 范围将一直保留到用户会话,但是 globalSession bean 范围是否可以在整个应用程序中使用?
是应用范围吗?
我无法理解术语“全局 HTTP 会话”;它会在整个全球 HTTP 会话中可用吗?
java - Spring单例内存使用优化
使用延迟加载的单例 bean 时,Spring 是否会以某种方式优化内存使用?
假设我们有一个代表某个模块(应用程序框架/窗口)的单例 bean,它是惰性的。这个 bean 加载了一些类,这些类是这个框架的组件,并且没有在 Spring 的 IoC 容器中定义。
假设我们关闭了模块JFrame
,frame 的所有组件通常都应该被垃圾回收,但它们仍然被 spring bean 引用。
spring 在这种情况下会优化内存使用吗?
准确地说,我不是在问原型,而是在问单例。因为我们有奇怪的行为,在关闭窗口时会释放使用 Spring 单例的内存。当我们为窗口使用原型 bean 时,会释放更多的内存。