目录
1.什么是注解
①:注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值...)
②:使用注解,注解作用在类上面,方法上面,属性上边
③:使用注解的目的:简化XML配置
2.Spring针对Bean管理中创建对象提供的注解
@Component 普通的类
@Controller 表现层
@Service 业务层
@Repository 持久层
这四个功能都一样写一个就行
使用注解的两种方式:
配置文件进行注解扫描
1、在需要进行管理的类上添加注解 上述任意一种
@Component(value="car") //类似于bean id 的功能
/* <bean id="car" class="Car(全类名)"/> */
/**
* 组件,作用:把当前类使用IOC容器进行管理,如果没有指定名称,默认使用类名,首字母是小写。
* car。或者自己指定名称
**/
@Controller(value="car")
public class car {
public void hello() {
System.out.println("使用注解,方便吧!");
}
}
2、更改配置文件在ApplicationContext.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">
<!--开启注解扫描 com.qcby所有的包中的所有的类-->
<context:component-scan base-package="com.qcby.sevice"/>
</beans>
注意一下我都car是放在sevice包里面的
3、测试类
@Test
public void car(){
//创建spring 工厂
ApplicationContext ac= new ClassPathXmlApplicationContext("ApplicationContext.xml");
//获取bean对象
Car car=(Car) ac.getBean("car");
//输出
car.hello();
}
IOC纯注解的方式
纯注解的方式是微服务架构开发的主要方式,所以也是非常的重要。纯注解的目的是替换掉所有的配置文件。但是需要编写配置类。
1、编写配置类替换之前的xml文件
package com.qcby;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration //这是一个配置类
@ComponentScan("com.qcby.sevice")//扫描地址
public class SpringConfig {
}
这个配置类和sevice是同级别的在com.qcby下面,这样更清楚一点毕竟配置类并不属于一个主体内容,其实放在一个包里面也可以运行
2、更改测试类
这个和xml测试类的差别在于 ac= new Annoation... 以及传参(SpringConfig.class)//自己编写的配置类名称不加"";
@Test
public void car1(){
ApplicationContext ac= new AnnotationConfigApplicationContext(SpringConfig.class);
//获取bean对象
Car car=(Car) ac.getBean("car");
//输出
car.hello();
}