Spring框架学习2——基于注解的DI

 

基于注解DI完成对象配置

使用注解的步骤:

1、加入maven依赖:spring-context,会简介加入spring-aop依赖,有他才能使用注解;

2、在类中加入spring的注解

3、在spring的配置文件中,级啊引入一个组件扫描的标签,说明注解在项目中的位置。

常用相关注解:

@Component

@Respotory

@Service

@Controller

@Value

@Autowired

@Resource

实现步骤:

  1. 加入依赖
  2. 创建类,在类中加入注解
  3. 创建spring的配置文件,声明组件扫描器标签,说明注解在项目中的位置

        4.使用注解创建对象,创建容器ApplicationContext 

指定多个包的三种方式:

1、指定多次组件扫描器,指定不同的包

<context:component-scan base-package=”com.AAAA.01”>

<context:component-scan base-package=”com.AAAA.02”>

2、使用分隔符(;或,),分隔多个包名

<context:component-scan base-package=”com.AAAA.01;com.AAAA.02”>

3、指定父包

<context:component-scan base-package=”com.AAAA”>

@Component

 

等同于bean创建对象。

属性:value 为对象的名称,也就是bean的id,value的值唯一;

等同于:<bean id =”myStudent” class=”xxxx”/>

注意:

1、创建的对象在整个spring容器中只能有一个。

2、在Spring中,创建的对象被存储在一个Map对象中

和Component功能一致的注解还有:

@Repository(用在持久层上):放在dao的实现类上,表示dao对象,说明其能访问数据库

@Service(用在业务服务上):放在service的实现类上,创建service队形,service对象是做业务处理,可以有事务等功能

@Controller(用在控制器上):放在控制器(处理器)类上面,创建控制器对象,通过控制器对象,能够接收用户提交的参数,显示请求的处理结果。

注意:

1、通过上面三个注解可实现项目中对对象的分层。

2、通过@Component只声明对象,不做业务层次的划分。

@Vaulue

简单类型的属性赋值

属性:Value是String类型,标识简单类型的属性值。

注意:

1、使用位置在属性定义的上面,无序在用set方法

 

@Autowired

用作复杂类型的属性赋值

spring中通过注解给引用类型赋值,使用的是自动注入原理,支持byName,byType;

@Autowired默认使用的是byType自动注入。

注意:在属性定义的上面,无需set方法

使用byName方式进行赋值:

  1. 在属性上面使用@Autowired
  2. 在属性上加入@Qualifier(value=”bean的id”):标识使用指定名称的bean完成赋值 

属性:

  1. required的属性,是一个boolean类型的,默认true

required=true:标识引用类型赋值失败,程序报错,并终止执行

required=false:引用类型如果赋值失败,程序正常执行,引用类型是null

@Resource

是JDK的注解,不是spring提供的。spring提供了对该注解的支持。可以用来给引用类型赋值。支持byType,byName赋值,默认byName。

注意:在属性定义上面,无需set方法。

 

注意:在注解过程中,先使用byName自动注入,如果byName属性失败,在使用byType

若只想使用byName方式,则需要给一个name属性

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值