使用注解方式管理bean

spring针对bean管理中创建对象的注解

  1. @Component
  2. @Service
  3. @Controller
  4. @Repository
    上面这个四个注解的功能都是一样的,都可以用来创建bean实例。其中@Service常用在业务逻辑层,@Controller常用在web层,@Repository常用在持久层。

用注解创建bean实例的方法

  1. 需要额外导入aop的jar包
  2. 在spring的配置文件中添加如下配置信息
<beans
<!-- ..... -->
xmlns:context="http://www.springframework.org/shcema/context"
xsi:schemaLocation="http://www.springframework.org/shcema/context http://www.springframework.org/shcema/context/spring-context.xsd">

<!--开启组件扫描,会扫描该包下的所有类,查看是否有注解-->
<context:component-scan base-package="com.kun.Spring5"></context:component-scan>

<!--示例1
	默认spring会有一个自己的filter,去扫描base-package包下的所有类
	use-default-filters="false":表示不适用默认filter,自己配置filter
	<context:include-filter/>里面的内容表示,扫描base-package包下所有注解是Controller的类。
-->
<context:component-sacn base-package="com.kun.Spring5" use-default-filters="false">
	<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
</beans>

<!--示例2
	<context:exclude-filter/>里面的内容表示,扫描base-package包下所有注解,但不扫描注解是@Controller的类
-->
<context:component-scan base-package="com.kun.Spring5">
	<context:exclude-filter type="annotatioon" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

  1. 在需要创建实例的类中添加注解
@Service(value = "userService") // 这里的value和配置文件中的id一样
@Service // 如果不写value,默认value就是类名的第一个首字母小写
public class UserService {
    public void add(){
        System.out.println("add...");
    }
}
  1. 在测试类中进行测试
public class test {
    @Test
    public void test001(){
        // 加载spring配置文件
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        // 创建对象
        UserService userService = context.getBean("userService", UserService.class);
        userService.add();
    }
}

结果输出为add…

使用注解实现属性的注入

1. 注入对象
  1. @Autowired(根据属性的类型进行注入)
@Autowired // 根据类型注入,根据类型UserDao找到其实现类,然后进行注入
private UserDao userDao;
  1. @Qualifier(根据属性的名称进行注入,需要配合@Autowired使用)
@Autowired
@Qualifier(value = "userDaoImpl2") // 根据名称进行注入,注入实现类2
private UserDao userDao;
  1. @Resource(可以根据类型注入,也可以根据名称注入)
    注意@Resource是javax包下的,高版本已经移除了
2.注入普通类型属性

@value

    @Value(value = "琨哥")
    private String name;

完全注解开发

  1. 编写配置类
@Configuration // 标志该类是一个配置类
@ComponentScan(basePackages={"com.kun.Spring5"})
public class SpringConfig{
}
  1. 编写测试方法
@Test
public void test001(){
// 加载配置类
	ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class)
// 创建对象
	......
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值