Spring控制反转(IOC)之注解配置

常用注解介绍

以下注解作用于类上,表示在spring启动的时候,将带有注解的类创建实例对象,加载到spring容器中,相当于xml配置文件中的bean标签。

注意:必须要在xml配置文件中指定sping要扫描的包,只有指定包下加了注解的类,才会被创建对象,加载到spring容器中。

  1. @Component: 此注解用于类上,表示把当前类对象存入spring容器。
  2. Controller: 作用与@Component相同, 但是一般用于表现层,体现分层的思想。
  3. Service: 作用与@Component相同, 但是一般用于业务层,体现分层的思想。
  4. Repository: 作用与@Component相同, 但是一般用于数据访问层,体现分层的思想。

注意:

    @Controller @Service @Repository 这三个注解用于体现mvc三层分层, 对不属于三层的类, 我们一般使用@Component注解 以上注解作用于实体类上(接口的实现类上) 在使用以上注解时, 设置其注解的value属性,给当前类指定Bean的id, 在获取Bean的时候,就要根据指定的id进行获取;如果不指定Bean的id, 那么此类的Bean默认id为当前类名, 首字母要小写

使用示例

    UserDao接口和实现类代码 public interface UserDao { public void saveUser(); } //@Repository作用:表示在Spring启动时将UserDaoImpl类创建实例对象,存入Spring容器 @Repository public class UserDaoImpl implements UserDao { public void saveUser() { System.out.println("执行dao的保存方法"); } } UserService 和实现类代码 public interface UserService { public void saveUser(); } @Service public class UserServiceImpl implements UserService { public void saveUser() { System.out.println("执行service中的保存逻辑"); } } UserController代码 @Controller public class UserController { public void saveUser(){ System.out.println("这是controller的执行保存.."); } } 要在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 https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--使用此标签,指定spring启动的时候要扫描的包,只有指定包下带有注解的类,才能被Spirng管理--> <context:component-scan base-package="com.wyan.dao"></context:component-scan> </beans> 测试和结果

注意点

  1. 四个注解建议分层使用,体现分层思想。
  2. 一定要在配置文件中使用context:component-scan标签,自动Spring启动后要扫描的包,才能扫描到使用注解的类。
经验分享 程序员 微信小程序 职场和发展