Spring学习总结(5)-Spring依赖关系
参考资料:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-dependencies
1. Spring依赖关系注入基本方式
1.1 构造方法
官方文档:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-constructor-injection
1.2 Setter方法
官方文档:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-setter-injection
2. 使用@DependsOn注解
官方文档:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-factory-dependson
DependsOn的作用是显示声明一个类依赖另一个类(可能这两个类并没有引用关系,只是需要前一个的类的一些信息,比如公共变量之类的)
注解使用方式:
@DependsOn(value = "UserDao") public class UserServiceImpl implements UserService { }
XML使用方式:
<bean id="beanOne" class="ExampleBean" depends-on="manager"/> <bean id="manager" class="ManagerBean" />
3. Lazy-initialized(懒加载,也叫延迟初始化)
官方文档:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-factory-lazy-init
懒加载,就是项目启动时不需要初始化的Lazy标注的类,等在需要调用时才初始化。(这种方式可以明显加快项目启动速度,但不能滥用,我一般用在测试用例里)
注解使用方式
@Lazy public class UserServiceImpl implements UserService { }
XML使用方式:
<bean id="lazy" class="com.something.ExpensiveToCreateBean" lazy-init="true"/> <bean name="not.lazy" class="com.something.AnotherBean"/>
4. 优化
如果你的Spring项目里Bean非常多,想要提高类加载的速度,可以引用spring-context-indexer这个jar包,此jar包的作用是在类编译期间就生成了类的索引,在类加载过程时就会使用索引内读取类信息。
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-indexer</artifactId> <version>*.*.*.RELEASE</version> <optional>true</optional> </dependency>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通