Spring基于注解配置

    技术2022-07-10  98

    前言

    ​ 基于注解的方式配置在实际开发中使用更加广泛,一般只有非自己编写的类,需要将对象放入到IOC容器中管理才会使用到xml的配置,相比XML配置来说,注解更加简单。

    一. 注解的类型

    ​ 并不是说使用了注解之后,就可以不用使用xml文件,使用注解也需要配置xml文件,但是xml文件配置的不再是bean,而是配置扫描,扫描的配置指的是,Spring能够从配置的指定的classpath中自动扫描,侦测和实例化具有特定的Spring注解的组件【类】。Spring的特定的注解有哪些呢?

    @Component:基本注解,标识一个受到Spring管理的组件@Resposity:是基本注解的子注解,标识在数据访问层,表示是一个受到了Spring管理的组件@Service:是基本注解的子注解,标识在业务层【服务层】,表示是一个受到了Spring管理的组件@Controller:是基本注解的子注解,标识在控制层,表示是一个受到了Spring管理的组件

    范例:使用注解:

    步骤1:加入jar包

    commons-logging-1.1.3.jar

    spring-aop-4.0.0.RELEASE.jar

    spring-beans-4.0.0.RELEASE.jar

    spring-context-4.0.0.RELEASE.jar

    spring-core-4.0.0.RELEASE.jar

    spring-expression-4.0.0.RELEASE.jar

    步骤2:编写需要加入到SpringIOC容器中管理的组件

    @Component public class Car {private String brand;public String getBrand() {return brand;}public void setBrand(String brand) { ​ thisbrand = brand;}@Overridepublic String toString() {return "Car [brand=" + brand + "]";} }

    步骤3:编写Spring的配置文件

    <!-- ​ 配置自动扫描的包:表示这个包【或者子包】中带有Spring注解的组件会被IOC容器管理 ​ context:component-scan : 用来配置自动扫描的包 ​ base-package : 表示配置扫描的基础包,则表示会扫描此包及其子包中所有的Spring的注解 ​ --><context:component-scan base-package="com.wanbangee.annotation"></context:component-scan> </beans>

    步骤4:编写测试类

    public class Main {public static void main(String[] args) { ​ ApplicationContext act = new ClassPathXmlApplicationContext("annotation.xml"); ​ Car car = act.getBean(Car.class); ​ System.out.println(car);} }

    二. 注解配置

    如何进行属性注入:在组件类中的setter方法或者属性名上面使用@Value注解,进行属性注入

    @Value(value="Audi")//@Value("Audi"),如果注解中只设置value属性的值,则可以省略value=

    我们在测试类中,获取bean的方式是用过bean的类型获取,如果要通过bean的id获取,那么注解的组件的bean的id如何配置呢?

    /* * 如果不设置bean的id,则默认的bean的id是类名首字母小写 * 可以在注解中使用value属性设置bean的id,如果设置了bean的id,则默认id失效 * @Component(value="car1") 和 @Component("car1") 如果注解中只设置value属性的值,则可以省略value= */ @Component("car1")

    我们目前只使用了基本注解,那么其他的三个子注解如何使用呢?四个注解在实际使用中是一致的,但是从理论上讲,又是不一致的。我们在开发中实际四个注解应该使用在这个注解所表示层级。

    配置自动扫描的包,能扫描到子包吗?能够扫描当前配置包和其子包

    小结

    实际上在开发中,对于注解使用是最多的,因为注解相比配置文件来说,更加简单。

    使用注解的话,有四种将类放到IOC容器中管理的方式。

    Processed: 0.041, SQL: 9