第一步:
创建一个maven框架,在pom配置文件里添加依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
第二步:
在spring配置文件里开启组件扫描(里面写你需要扫描的包)(在开头里面加入这两条语句)
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
<context:component-scan base-package="demo_02"></context:component-scan>
第三步创建类:
@Component(value = "userservice")//如果不写value则默认是类名第一个字母小写,即是我这样写。
public class Userservice {
public void add() {
System.out.println("service------");
}
}
这个@Component的效果与在xml文件写<bean>类似,写注解就不需要写下面这一步,也就是用注解的话,spring xml配置文件里面只用开启组件扫描就行了,不用写其他东西
<bean id="xxx" class="demo_02.Userservice"></bean>
第四步--测试:
下面getBean里面的“userservice”就是刚才写的注解里面的value名。
@Test
public void test03(){
ApplicationContext context=
new ClassPathXmlApplicationContext("bean.xml");
Userservice userservice = context.getBean("userservice", Userservice.class);
userservice.add();
}
输出结果:
service------
Process finished with exit code 0
——————————————————————————————————————————
bean xml 文件也可以用类来代替
新建一个类如下
@Configuration
@ComponentScan(basePackages = {"springioc"})
public class Spring_Config {
}
@Configuration注解是表明这个类是xml文件
@ComponentScan(basePackages = {"springioc"})则是开启扫描注解,同样里面写需要扫描的包
测试类:
不再写bean.xml,下面的getBean也不用写value值里面的名称
@Test
public void test02(){
AnnotationConfigApplicationContext applicationContext =
new AnnotationConfigApplicationContext(Spring_Config.class);
UserService u = applicationContext.getBean(UserService.class);
u.test();
}