Spring进阶 1. Spring的Bean管理(注解) 1. 代码中的特殊标记,使用注解可以完成功能 2. 注解的写法:@注解名称(属性名称=属性值) 3. 注解可以使用在类、属性、方法上 4. Spring注解开发 1.准备 (1)导入Jar包 (a)导入Spring的基础Jar包 (b)导入AOP的Jar包 Spring-aop-4.2.4.RELEASE.jar (2)创建类、创建方法 (3)创建Spring配置文件,引入约束 需要引入Beans和Spring-context约束 (4)在配置文件中开启注解扫描 // 到包中扫描类、方法、属性上是否有注解
3. 使用注解注入属性 代码: @Component(value="https://www.it610.com/article/userDao") public class UserDao{ public void add(){} }
@Service(value="https://www.it610.com/article/userService") public class UserService{ // 不需要Set方法 @AutoWired private UserDao userDao;
public void add(){} } 注解属性的两种方式: (1)@AutoWired (2)@Resource(name="userDao")// name属性值写注解创建Dao对象Value值
3. XML和注解方式混合使用 1. 创建对象操作使用配置文件方式实现 2. 注入属性的操作使用注解的方式实现
2. AOP 1. AOP概述 (1)面向切面编程 (2)采用横向抽取机制,取代了传统纵向继承体系重复性代码 2. AOP底层原理
3. AOP操作相关术语 (1)Pointcut(切入点):指我们要对哪些Joinpoint进行拦截的定义 (2)Advice(通知/增强):指拦截到Joinpoint之后所要做的事情就是通知,通知分为前置通知、后置通知、异常通知、最终通知、环绕通知(切面要完成的功能) (3)Aspect(切面):指切入点和通知的结合
3. Spring的AOP操作(基于AspectJ的XML方式) 1. 在Spring中进行AOP操作,使用AspectJ实现 (1)AspectJ不是Spring的一部分,和Spring一起使用进行AOP操作 (2)Spring2.0以后新增了对AspectJ的支持 2. 使用AspectJ实现AOP的两种方式 (1)基于AspectJ的XML配置 (2)基于AspectJ的注解方式 3. 使用表达式配置切入点 切入点:实际增强的方法 常用的表达式: execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>) (a)execution(* cn.spring.aop.Book.add(..)) (b)execution(* cn.spring.aop.Book.*(..)) (c)execution(* *.*(..)) (d)匹配所有save开头的的方法execution(*save*(..)) 4. 代码 (1)导入相关的Jar aopalliance-1.0.jar aspectjweaver-1.8.7.jar spring-aop-4.2.4.RELEASE.jar spring-aspects-4.2.4.RELEASE.jar (2)创建Spring的核心配置文件,导入AOP约束 配置对象 配置aop操作 4. Log4J介绍 1. 通过log4j可以看到程序运行过程中更详细的信息 经常使用log4j查看日志 2. 使用 (1)导入log4j的Jar包 (2)复制log4j的配置文件,复制到src下 (3)设置日志级别: (a) info :看到基本信息 (b)debug:看到详细信息
5. Spring整合Web项目 1. 问题 Action调用Service,Service调用Dao,会有性能问题 2. 解决方案: (1)在服务器启动时,创建对象加载配置文件 (2)底层使用监听器、ServletContext对象 3. Spring中已经进行封装 (1)封装了监听器,只需要配置即可,需要导入Jar包: spring-web-4.2.4.RELEASE.jar (2)配置监听器
推荐阅读
- =======j2ee|spring用注解实现注入的@resource,@autowired,@inject区别
- jar|springboot项目打成jar包和war包,并部署(快速打包部署)
- 数据库|效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...
- java人生|35K 入职华为Java开发那天,我哭了(这 5 个月做的一切都值了)
- Java毕业设计项目实战篇|Java项目:在线嘿嘿网盘系统设计和实现(java+Springboot+ssm+mysql+maven)
- 微服务|微服务系列:服务发现与注册-----Eureka(面试突击!你想了解的Eureka都在这里.持续更新中......)
- java|ApplicationListener和SpringApplicationRunListener的联系
- Spring|SpringSecurity--自定义登录页面、注销登录配置
- 性能|性能工具之 Jmeter 通过 SpringBoot 工程启动
- 代码狂魔|Spring源码分析之IOC容器初始化流程