前几天弄服务外包杯,所以没有更新博客,今天继续spring5-ioc
之前关于bean管理的xml配置操作差不多写完了,今天来用注解实现,注解方式比xml配置方式简单很多。主要是为了简化xml配置
要是注解方式实现首先第一步必须配置一个xml配置文件,里面不用写多就一条语句。
<!-- 开启组件的扫描-->
<context:component-scan base-package="Spring"></context:component-scan>
这条语句作用是扫描spring包下所有文件,因为我起了了一个叫spring的包所有里面值填“spring”
创建对象中spring有4种注解:@Repositor@Service@Component@Controller
@Repositor:一般是用于持久层,目前我也不怎么清楚这个,但我知道这个是最接近数据库的
@Service:这个不用多说业务逻辑层
@Controller:这个是控制层
@Component:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
不多说还有一些注解:上代码,简单写几个注解,有注释提示
Service:
@Service(value = "userServic") //<bean id="userServic" class="../"包路径 public class UserServic { @Value(value = "***") private String name; //定义dao类型属性,不需要添加set方法 //添加注入属性注解 @Autowired @Qualifier(value = "userDaoImpl")//@Autowired和@Qualifier要一起使用,@Qualifier不能没用@Autowired,但@Autowired可以没有@Qualifier // @Resource//不知道为啥不能用 private UserDap userDap; public void add(){ System.out.println("add......"+name); userDap.add(); } }
Userumpl:
@Repository public class UserDaoImpl implements UserDap{ public void add(){ System.out.println("dao add ....."); } }
测试:
@Test public void testService(){ ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml"); UserServic stu = context.getBean("userServic", UserServic.class); System.out.println(stu); stu.add(); }