spring框架-注解配置

前期准备

  • 添加依赖
<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.1.5.RELEASE</version>
    </dependency>
</dependencies>

分类介绍

用于创建对象

他们的作用就和XML配置中编写一个标签的功能一样

  • @Component:
    作用把当前标注的类对象存入spring容器
    属性:value(用于指定bean的id.当不写时,默认为当前类名,且首字母小写)
    -@Controller:表现层
@Controller
public class AccountController {
}
  • @Service:业务层
@Service("accountService")
public class AccountServiceImpl implements IAccountService {
}
  • @Repository:持久层
@Repository("accountDao")
public class AccountDaoimpl implements IAccountDao {
}

以上三个注解和Component功能一样,他们是spring框架为我们明确提供的三层注解,使三层对象更加清晰

用于注入数据

他们的作用就和xml配置中的bean标签中一样

  • @Autowired:
    作用: 自动按照类型注入。只要容器中有唯一的bean对象类型和要注入的类型匹配,则可以注入成功
    如果IOC容器中没有任何bean类型和要注入的变量类型匹配则报错,如果发现多个和要注入的变量类型匹配,则会根据变量名匹配,如果都不匹配则注入失败
    出现位置:可以是变量上,也可以是方法上
    细节:setter方法就不是必须的了
@Autowired
private IAccountDao accountDao;

特别注意
@Autowired会在spring的核心容器IOC中查找数据类型相同的接口或者实现类, 如果IOC容器中没有任何bean类型和要注入的变量类型匹配则报错;如果只找到一个则直接注入;查找;如果发现多个和要注入的变量类型匹配,则会根据变量名匹配,如果都不匹配则注入失败。
Autowired自动匹配注入

  • @Qualifier:
    作用:在给类成员注入时不能按单独使用,是和Autowird组合使用,在按照类中注入的基础上再按照名称注入。但在给方法注入时可以单独使用。
    属性:value:用于指定注入bean的id。
@Autowired
@Qualifier("accountDao")
private IAccountDao accountDao;
  • @Resource:
    作用:直接按照bean的id注入。可以独立使用
    属性:name:用于指定bean的id.
@Resource(name = "accountDao")
private IAccountDao accountDao;

以上三个注入都只能注入其他bean类型数据,而基本类型和string类型无法使用上述注解,另外集合类型的注入只能使用XML来实现

  • @Value
    作用:用于注解基本类型和string类型的数据、
    属性:
    value:用于指定数据的值。他可以使用spring的SpEL表达(也就是spring中的el表达式)
    SpEL表达式写法:${表达式}
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;

用于改变作用范围

他们的作用就和bean标签中使用scope属性实现功能一样的

  • @Scope:
    作用:用于指定bean的作用范围
    属性:value: 指定范围取值 常用取值: singleton , prototype等。
//@Bean(name = "runner")
@Scope("prototype")
public QueryRunner createQueryRunner(DataSource dataSource) {
    return new QueryRunner(dataSource);
}

和生命周期相关(了解)

他们的作用就和bean标签中init-method和destroy-method的作用一样

  • @PreDetory
    作用:用于指定销毁方法
  • @PreConstruct
    作用:用于指定初始方法

特别注意:本文章是学习Spring视频教程 -IEDA版-4天-2018黑马SSM 所记录知识总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值