IOC 基于 注解方式 实现---------------------- 半自动化配置
什么 注解?
@Test @Override
注解是代码的特殊标记, 使用 @注解名
注解 可以使用在 类,方法, 属性, 参数 上
注解的目的 ----- 简化xml配置 最终 可以替代掉 xml文件
1. Spring 提供以下 四个注解 修饰类
@Service: 一般用来修饰 业务service层
@Repository: 一般用来修饰 数据访问dao层
@Component: 当一个类 , 分不清是 哪个层 可以用这个注解来修饰
@Controller: 一般用来修饰 控制层
若 使用以上注解 没有指定名字 ,则 spring会 默认使用 类名的首字母变为小写字母 作为 bean 的id 属性的值
2. @Autowired: 类似 bean 标签的 autowire 的byType , 按照 类型 自动装配,(当为属性添加该注解后 ,不在需要 set 方法)
application.xml 中 增加 扫描配置:
需要添加 context 命名空间
然后使用 <context:component-scan base-package="注解所在包"/> 如果 有多个包 则使用逗号分隔
3. 当一个接口 有多个实现类时 如果 只使用 @Autowire 则会报错,
因此 需要结合 @Qualifier 一起使用
通过 @Qualifier 注解 来指定 名字
4. spring 全自动化 --- 彻底 告别 application.xml
具体见 config 包
测试类:
ApplicationContext ac = new AnnotationConfigApplicationContext(MyConfig.class);
5. spring aop 实现
a.需要 引入 aop 相关jar,
b.编写配置文件, 增加 aop 命名空间
增加 以下配置
<!--开启 Aspect生成 代理对象-->
<aop:aspectj-autoproxy />
c. 编写 User.java 与 UserProxy.java 类
在 UserProxy.java 中 定义 对 User.java 类中 print()方法进行增强处理
d. 程序正常执行时 通知的顺序
环绕通知 前
前置通知 before
程序流程 (真正调用的方法)
后置通知 afterReturning
最终通知 after
环绕通知 后
程序发生异常时 通知的顺序
环绕通知 前
前置通知 before
异常通知
最终通知
6. spring 事务管理
因为后期分层开发, 事务 可以使用xml 及 注解配置
注意 : 事务 要写在 service (业务层) 中
事务的底层 就是 AOP,
使用注解 声明 事务 : 需要 引入 tx 的命名空间
a. <!--配置 事务管理-->
<bean id="tx" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="ds"/>
</bean>
b. <!--开启 事务的注解-->
<tx:annotation-driven transaction-manager="tx"/>
c. 一定 要 记得 为 业务层 类 或者 方法 添加 @Transactional 注解
@Transactional 可以设置属性 :
REQUIRED:==默认值==
如果add方法本身有事务,调用update方法之后,update使用当前add方法里面事务
如果add 方法本身没有事务,调用update方法之后,创建新事务
REQUIRED_NEW:
使用add方法调用update方法,如果add无论是否有事务,都创建新的事务,
没有合适的资源?快使用搜索试试~ 我知道了~
IOC 基于 注解方式 实现- 半自动化配置
共37个文件
class:14个
java:14个
xml:3个
0 下载量 42 浏览量
2024-03-14
13:33:41
上传
评论
收藏 21KB RAR 举报
温馨提示
IOC 基于 注解方式 实现---------------------- 半自动化配置 Spring 提供以下 四个注解 修饰类 @Service: 一般用来修饰 业务service层 @Repository: 一般用来修饰 数据访问dao层 @Component: 当一个类 , 分不清是 哪个层 可以用这个注解来修饰 @Controller: 一般用来修饰 控制层 @Autowired @Qualifier spring aop 实现
资源推荐
资源详情
资源评论
收起资源包目录
springAnno.rar (37个子文件)
springAnno
springAnno.iml 3KB
pom.xml 4KB
src
test
java
TestDept.java 2KB
main
resources
db.properties 123B
application.xml 2KB
java
com
ly
controller
DeptController.java 399B
dao
PersonDao.java 253B
DeptDao.java 76B
impl
PersonDaoImpl.java 787B
TestDeptDaoImpl.java 292B
DeptDaoImpl.java 550B
service
impl
DeptServiceImpl.java 742B
PersonService.java 642B
DeptService.java 80B
entity
Person.java 908B
aop
UserProxy.java 1KB
User.java 281B
config
MyConfig.java 536B
target
classes
db.properties 123B
application.xml 2KB
com
ly
controller
DeptController.class 648B
dao
DeptDao.class 127B
impl
DeptDaoImpl.class 659B
TestDeptDaoImpl.class 673B
PersonDaoImpl.class 1KB
PersonDao.class 148B
service
PersonService.class 865B
DeptService.class 138B
impl
DeptServiceImpl.class 926B
entity
Person.class 1KB
aop
User.class 613B
UserProxy.class 2KB
config
MyConfig.class 566B
test-classes
TestDept.class 2KB
maven-status
maven-compiler-plugin
compile
default-compile
createdFiles.lst 414B
inputFiles.lst 1KB
generated-test-sources
test-annotations
generated-sources
annotations
spring注解.txt 3KB
共 37 条
- 1
资源评论
射手座的程序媛
- 粉丝: 1693
- 资源: 106
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功