注解和xml指定扫描包实现spring ioc
- 引入依赖
- jdk17或者降低spring-contextbanbe
- maven仓库
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>6.0.6</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.1</version>
</dependency>
</dependencies>
- java类定义
- 加上component注解,相当于xml中的bean标签
@Component
public class JavaBean{
public void doWork(){
System.out.println("JavaBean.doWork");
}
}
- .xml配置扫描包路径(要注入容器的类的路径)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.binbin.ioc"></context:component-scan>
</beans>
- 获取bean
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-01.xml");
JavaBean javaBean = applicationContext.getBean(JavaBean.class);
javaBean.doWork();
输出结果:JavaBean.doWork
总结
- 类上加上component注解相当于bean标签,表示注入ioc容器
- .xml文件中指定扫描包路径