Spring的Bean 管理(注解)
注解
- 代码里面特殊标记,使用注解可以完成功能
- 注解写法 @注解名称(属性名称=属性值)
- 注解使用在类上面,方法上面,属性上面
Spring注解开发准备
-
导入jar包
- 导入基本的jar包
- 导入aop的jar包
-
创建类,创建方法
-
创建spring配置文件,引入约束
-
做ioc基本功能,引入约束beans
-
做spring的ioc注解开发,引入新约束
-
开启注解扫描
-
注解对象创建
-
在创建的类上面使用注解实现
value相当于配置文件里的id值
-
创建对象有四个注解
- @Conponent
- @Controller web层
- @Service 业务层
- @Repository 持久层
-
创建对象单实例还是多实例
注解注入属性
-
创建service类,创建dao类,在service得到dao对象
1.创建dao和service对象
-
在service类里面定义dao类型属性
一种使用Autowired,一种使用Resource
使用Resource比较清晰
配置文件和注解混合使用
- 创建对象操作使用配置文件方式实现
- 注入属性的操作使用注释方式实现
AOP
AOP概念
- aop:面向切面编程,扩展功能不修改源代码实现
- AOP采取横向抽取机制,取代传统纵向继承体系重复性代码
AOP原理
AOP操作术语
Spring的aop操作
- 在spring里面进行aop操作,使用aspectj实现
- aspectj不是Spring一部分,和spring一起使用进行aop操作
- spring2.0以后新增了对apectj的支持
- 使用aspectj实现aop有两种方式
- 基于aspectj的xml配置
- 基于aspectj的注解方式
AOP操作准备
-
除了导入基本的jar包,还导入aop的jar包
-
创建spring核心配置文件,导入aop约束
使用表达式配置切入点
-
切入点:实际增强的方法
-
常用的表达式
execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)
- execution(* cn.itcast.aop.Book.add(…))
- execution(* cn.itcast.aop.Book.*(…))
excution(* *.*(...))
- 匹配所有save开头的方法execution(* save*(….))
Aspectj的aop操作
Log4j介绍
- 通过log4j可以看到程序运行中更详细的信息
- 经常使用log4j查看日志
- 使用
- 导入log4j的jar包
- 复制log4j的配置文件,复制到src下
- 设置日志级别
- info看到基本信息
- debug:看到详细信息
Spring整合web项目演示
-
在spring里面不需要我们自己写代码实现,spring已经帮我们封装好了
-
封装了一个监听器,只要配置监听器就可以了
-
配置监听器之前:导入spring整合web项目jar包
spring-web-xx.RELEASE.jar
-
-
指定spring配置文件位置