Spring控制反转(IOC)之注解配置
常用注解介绍
以下注解作用于类上,表示在spring启动的时候,将带有注解的类创建实例对象,加载到spring容器中,相当于xml配置文件中的bean标签。
注意:必须要在xml配置文件中指定sping要扫描的包,只有指定包下加了注解的类,才会被创建对象,加载到spring容器中。
- @Component: 此注解用于类上,表示把当前类对象存入spring容器。
- Controller: 作用与@Component相同, 但是一般用于表现层,体现分层的思想。
- Service: 作用与@Component相同, 但是一般用于业务层,体现分层的思想。
- 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> 测试和结果
注意点
- 四个注解建议分层使用,体现分层思想。
- 一定要在配置文件中使用context:component-scan标签,自动Spring启动后要扫描的包,才能扫描到使用注解的类。
上一篇:
IDEA上Java项目控制台中文乱码