[Spring5]IOC容器_Bean管理注解方式_注入属性@Autowired_@Qualified_@Resource_@Value
Posted 唐火
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Spring5]IOC容器_Bean管理注解方式_注入属性@Autowired_@Qualified_@Resource_@Value相关的知识,希望对你有一定的参考价值。
基于注解方式实现属性注入
(1)@AutoWired:根据属性类型进行自动装配
第一步 把service和dao对象创建,在service和dao类添加创建对象注解
第二步 在service注入dao对象,在service类添加dao类型属性,在属性上面使用注解
package com.atguigu.spring.dao;
public interface UserDao
public void add();
package com.atguigu.spring.dao;
import org.springframework.stereotype.Repository;
@Repository
public class UserDaoImpl implements UserDao
@Override
public void add()
System.out.println("dao add");
package com.atguigu.spring.service;
import com.atguigu.spring.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
//在注解里面value属性值可以省略不写
//默认值是类名称,首字母小写
@Service(value = "userService")//<bean id = "" class = ""/>
public class UserService
//定义dao类型属性
//不需要添加set方法
//添加注入属性注解
@Autowired //根据类型进行注入
private UserDao userDao;
public void add()
System.out.println("service add");
userDao.add();
package com.atguigu.spring.testdemo;
import com.atguigu.spring.service.UserService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestSpring5Demo1
@Test
public void testService()
ApplicationContext context = new ClassPathXmlApplicationContext("bean6.xml");
UserService userService = context.getBean("userService", UserService.class);
System.out.println(userService);
userService.add();
(2)@Qualifier:根据属性名称进行注入
这个@Qualifier注解的使用,和上面@Autowired一起使用
package com.atguigu.spring.dao;
import org.springframework.stereotype.Repository;
@Repository(value = "userDaoImpl")
public class UserDaoImpl implements UserDao
@Override
public void add()
System.out.println("dao add");
package com.atguigu.spring.service;
import com.atguigu.spring.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
//在注解里面value属性值可以省略不写
//默认值是类名称,首字母小写
@Service(value = "userService")//<bean id = "" class = ""/>
public class UserService
//定义dao类型属性
//不需要添加set方法
//添加注入属性注解
@Autowired //根据类型进行注入
@Qualifier (value = "userDaoImpl")
private UserDao userDao;
public void add()
System.out.println("service add");
userDao.add();
(3)@Resource:可以根据类型注入,可以根据名称注入
@Resource//根据类型进行注入
@Resource(name = "userDaoImpl")//根据名称进行注入
(4)@Value:注入普通类型属性
package com.atguigu.spring.service;
import com.atguigu.spring.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
//在注解里面value属性值可以省略不写
//默认值是类名称,首字母小写
@Service(value = "userService")//<bean id = "" class = ""/>
public class UserService
@Value(value = "abc")
private String name;
//定义dao类型属性
//不需要添加set方法
//添加注入属性注解
@Autowired //根据类型进行注入
@Qualifier (value = "userDaoImpl")
private UserDao userDao;
public void add()
System.out.println("service add"+name);
userDao.add();
以上是关于[Spring5]IOC容器_Bean管理注解方式_注入属性@Autowired_@Qualified_@Resource_@Value的主要内容,如果未能解决你的问题,请参考以下文章
[Spring5]IOC容器_Bean管理注解方式_组件扫描配置细节
[Spring5]IOC容器_Bean管理注解方式_注入属性@Autowired_@Qualified_@Resource_@Value
[Spring5]IOC容器_Bean管理XML方式_创建对象_set注入属性and有参构造注入属性
[Spring5]IOC容器_Bean管理XML方式_自动装配