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>

 

posted @ 2019-10-26 21:25  闲人鹤  阅读(627)  评论(0编辑  收藏  举报