Spring注解

注解

注解对象

使用context命名空间,通知spring扫描指定包下的所有bean类,进行注解解析。

  • 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
        http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.me.annotation" />
</beans>
  • UserDaoImpl
@Repository
public class UserDaoImpl implements UserDao{

    @Override
    public void save() {
        System.out.println("UserDaoImpl...");
    }
}
  • UserServiceImpl
@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserDao userDao;

    @Override
    public void save() {
        System.out.println("UserServiceImpl...");
        this.userDao.save();
    }
}
  • UserController
@Controller("userController")
public class UserControllerImpl implements UserController{
    @Autowired
    private UserService userService;
    @Override
    public void save() {
        System.out.println("UserControllerImpl...");
        this.userService.save();
    }
}

@Repository、@Service、@Controller功能和@Component是一样的,都可以将对象注解到容器,且都可以给对象指定名字,如@Service(“userService”)。

修改对象的作用范围

在这里插入图片描述

值类型注入

  • 方拾一,通过set方法赋值,推荐使用
    在这里插入图片描述
  • 方式二,通过反射的field赋值,破坏了封装性,但是更直观,因此也被更多使用。
    在这里插入图片描述

如果只给一个属性赋值,并且该属性是value,则“value=”可以省略,如@Value(“张三”)、@Repository(“userDao”)。

引用类型三种注入方式

  • 自动装配
    在这里插入图片描述
    问题:如果存在多个类型一致的对象,则无法选择具体注入哪一个对象。
  • 手动注入,指定bean对象名称。如果存在多个类型一致的对象,推荐使用。
    在这里插入图片描述
  • 自动装配且指定名称
    在这里插入图片描述

初始化和销毁方法

  • 初始化和销毁方法
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  • 测试类
    在这里插入图片描述
  • 运行结果
    在这里插入图片描述
    问题:userController没有被销毁,是因为其设置了作用域为“prototype”。prototype每次都会创建新的对象,但是不管销毁。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值