一、idea创建SpringBoot项目
File->New->Project->Spring Initializr
starter service URL:选择默认https://start.spring.io
即可默认创建出springboot项目
二、在项目入口处加载bean的xml配置
1、resources目录中添加xml bean配置
例:
创建一个Hello类
public class Hello {
private String name;
public void sayHello() {
System.out.println("Hello " + name);
}
}
创建一个spring.demo.bean.xml
<bean id ="hello" class="***.***.Hello" />
在启动类加载并调用,注意:创建Hello实例时,不要通过new的方式创建,new出来的对象和spring ioc容器创建的对象是不一样的
Application类添加@ImportResource,加载xml
@SpringBootApplication
@ImportResource(value = {"classpath:spring*.xml"} // 加载xml配置
public class Application {
public static void main(String[] args) {
ApplicationContext applicationContext = SpringApplication.run(Application.class, args); // 获取上下文
Hello hello = applicationContext.getBean("hello");
hello.sayHello();
}
}
2、@Autowired使用
我们常使用@Autowired进行自动装载,常见于controller类中对service、service类中对dao,对象创建或构造方法中对象参数
使用该标签时需要注意:
1、标签配置的对象,对应的类需要在bean的xml配置中进行配置,否则spring加载时找不到对应的类进行初始化
2、某个类中的变量对象通过该标签进行加载时,启动spring后不要通过new的方式创建该类对象,而是通过spring上下文进行创建,否则autowired不生效
3、InitializingBean的使用
spring进行bean加载时,继承InitializingBean覆写afterPropertiesSet方法可以执行bean加载后置初始化,比如对bean的基本配置,该配置只加载一次
关于bean初始化调用的方法,参考博客:https://blog.csdn.net/yaomingyang/article/details/110265291
4、ApplicationContextAware的使用
代码中,我们可能需要在非Application类读取spring的bean xml配置,来获取对应的bean
可以继承ApplicationContextAware,并覆写setApplicationContext方法,spring会自动将xml上下文注入到该类中,接下来就可以通过上下文获取对应的bean对象或者Map