Spring ComponentScan两种实现方式

一、准备工作

1、需要导入spring-context依赖

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.2.22.RELEASE</version>
</dependency>

2、创建Controller、Service、Dao

@Controller
public class PersonController {
    
}

@Service
public class PersonService {

}

@Repository
public class PersonDao {

}

二、xml实现

1、创建spring.xml,用来扫描Controller、Service、Dao

<?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">

    <!-- 组件扫描,将指定路径下的@Controller、@Service、@Repository、@Component -->
    <context:component-scan base-package="包路径">
    </context:component-scan>

</beans>

2、main方法进行测试

public static void main(String[] args) {
    testXml();
}

public static void testXml(){
    ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
    String[] names = context.getBeanDefinitionNames();
    for (String name: names) {
        System.out.println(name);
    }
}

三、注解实现

1、创建SpringConfig配置类,用来扫描Controller、Service、Dao

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("包路径")
public class BeansConfig {

}

2、main方法进行测试

public static void main(String[] args) {
    testAnnotation();
}

public static void testAnnotation(){
    ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
    String[] names = context.getBeanDefinitionNames();
    for (String name: names) {
        System.out.println(name);
    }
}

四、总计分析

本章主要学习了,spring组件扫描xml和注解的两种方式。《参考资料》

猜你喜欢

转载自blog.csdn.net/weixin_40968009/article/details/129757014