Spring 学习 day2 : Spring注解和代理模式

1.IOC注解

Spring框架中有注解和XML两种配置方式,这两种方式各有千秋

1.1 xml和注解两种注解方式的区别

1.1.1 XML配置

优点有:

1.XML配置方式进一步降低了耦合,使得应用更加容易扩展,即使对配置文件进一步修改也不需要工程进行修改和重新编译

2.在处理大的业务量的时候,用XML配置应该更好一些,因为XML更加清晰的表明了各个对象之间的关系,各个业务类之间的调用,同时Spring的相关配置也能一目了然.

缺点有:

配置文件读取和解析需要花费一定的时间,配置文件过多的时候难以管理,无法对配置的正确性进行校验,增加了测试的难度

1.1.2annotation配置

优点有:

1.在class文件中,可以降低维护成本,annotation的配置机制很明显简单

2.不需要第三方的解析工具,利用java反射技术就可以完成任务

3.编译是即可验证正确性,差错很及时

4.提高开发效率

缺点有:

1.如果需要对于annotation进行修改,那么要重新编译整个工程

2.业务类之间的关系不如XML配置那样清晰明了

3.如果在程序中的annotation比较多,直接影响代码质量,对于代码的简洁度有一定影响

XML方式在上一篇文章中已经详细记载,下面是注解方式

1.2 注解注入使用步骤

1.2.1 Autowired

1.创建项目并导入相关包 

https://note.youdao.com/yws/public/resource/98d524355f91bce5ac21605bcf29f24f/xmlnote/4489291AB17E472682C2F518E7349F18/16341

 2.开启注解的支持

<?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:annotation-config />
</beans>

3.业务类

业务类内容不变

public class UserService {
    private IUserDao userDao;

    @Autowired
    public void setUserDao(IUserDao userDao) {
        this.userDao = userDao;
    }
}

4.相关知识

@Autowired(自动封装)

用来将一个对象注入到当前类中

该注解可以加载set方法上或者直接加在属性上,如果写在setter方法上面,那就会通过setter方法进行注入,如果此时将setter方法干掉,那么就会报错.如果写在属性上面,比如说上面的IuserDao userDao上,那么此时是通过反射机制进行的注入,此时setter方法就算不存在也不会报错

注入时,会从spring容器(就是那个applicationContext.xml文件)中,找到一个和这个变量数据类型一致的实例化对象注入到当前类中,默认使用的byType,也就是根据数据类型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值