spring基于注解的ioc
教学内容
-
Spring中的ioc常用注解
-
案例使用xml和注解方式实现单标的CRUD操作
持久层技术选择:dbutils
-
改造基于注解的ioc案例,使用纯注解方式实现
spring 的一些新注解使用
-
spring和Junit的整合
使用注解前配置xml
core搜索xmlns:context
就有了
<?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.chajiu.service"></context:component-scan>
</beans>
四个对应-注解和xml标签对应
-
用于创建对象:同
<bean>
-
@Component
:把当前类对象存入spring容器-
属性value:指定key名,不写默认key为小写类名。
@Component(value = "accountServicelmpl")
或者@Component("accountServicelmpl")
-
-
@Controller
:用于表现层 -
@Service:
用于业务层 -
@Repository
:用于持久层 -
以上三个注解和
@Component
的作用和属性一模一样 -
他们是spring框架为我们提供三层的明确注解,使我们对三层结构更加清晰
-
-
用于注入数据:同
<property>
-
@Autowired
-
自动按照类型注入,只要容器中有唯一的一个bean类型和要注入的变量类型相匹配,就可以注入成功
-
出现位置:变量上或者方法上
- image-20200118090010734.png
-
如果有多个类型匹配时,按照注入的变量的名称匹配,再不唯一就报错
-
-
@Qualifier
- 在按照类型注入的基础上按照名称注入,给类成员注入时不能单独使用(必须配合
@Autowired
),但是给类方法注入可以单独使用 - 属性
value
,指定bean的id
- 在按照类型注入的基础上按照名称注入,给类成员注入时不能单独使用(必须配合
-
@Resource
- 作用:直接按照bean的id注入,可以独立使用
- 属性:name,指定bean的id
- 上述注解只能用于注入Bean类型,无法注入基本数据类型和String
- 且集合类型必须通过xml来实现
-
@Value
- 用于注入基本数据类型和String
- 属性value:用于指定数据的值,可以使用Spring中的SpEL(Spring的el表达式)
- SpEL写法:
${表达式}
- SpEL写法:
-
-
用于改变作用范围:同
<bean>
中的scope
属性一样-
@Scope
-
指定bean的作用范围,写在类前
-
属性:value,指定范围,常用取值:
singleton
,prototype
@Component(value = "accountService") @Scope("prototype") public class AccountServicelmpl implements IAccountService {
-
-
-
和生命周期相关:同
<bean>
中的init-method
和destroy-method
一样
网友评论