闭关修炼——five——Spring

day1

什么是spring?

1.开源的轻量级框架

2.spring是一站式框架
spring在javaee三层结构中,每一层都提供不同的解决技术
- web层:springMVC
- service层:spring的ioc
- dao层:spring的jdbcTemplate


spring核心主要两部分是什么?

1.aop:面向切面编程,扩展功能不是修改源代码实现
2.ioc:控制反转 -- 把对象的创建不是通过new方式实现,而是交给spring配置创建类对象
涉及(底层操作):1.配置spring的xml文件 2.工厂设计模式,dom4j解析xml文件,反射创建对象

开发的一个思想: 高内聚,低耦合 --- 类内紧密相连,类与类之间尽量不要有太多的关联

版本:spring 4

Spring Bean实例化(创建对象)的方式:
1.配置文件(常用 --- 类的无参数构造创建)
2.使用静态工厂创建 --- 创建静态的方法
3.使用实例工厂创建 --- 创建普通的方法

<bean>标签属性:
--id(常用,不能写特殊字符)与name的区别
--scope属性:singleton:默认值,单例---只能创建一个对象 prototype:多例


属性注入: --- 也可以注入对象,复杂的类型数据(数组,list,map,properties)
1.set(常用) 2.有参构造函数 3.P名称空间注入


IOC与DI:

IOC: 控制反转,把对象创建交给spring进行配置
DI: 依赖注入,向类里面的属性中设置值

依赖注入不能单独存在,需要在ioc基础之上完成操作


Spring整合web项目原理:
实现思想:把加载配置文件和创建对象过程,在服务器启动时候完成

1.ServletContext对象
2.监听器

 

day2

Spring的bean管理(注解) ---- 相比配置方式更简单些
1 代码里面特殊标记,使用注解可以完成功能

2 注解写法 @注解名称(属性名称=属性值)

3 注解使用在类上面,方法上面 和 属性上面

注解需另行导包,引入新的约束 --- spring_context... spring-aop...jar


(1)@Component
(2)@Controller
(3)@Service
(4)@Repository
目前这四个注解功能是一样的,都创建对象

@scope --- singleton or prototype

注解注入属性: 1.@Autowired -- 无参 2.@Resource -- 可以指定对象

配置文件和注解混合使用:
1.创建对象使用配置文件 2.属性的操作使用注解


什么是aop?

1 aop:面向切面(方面)编程,扩展功能不修改源代码实现

2 AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码

3 aop底层使用动态代理实现
(1)有接口,使用动态代理接口实现类代理对象
(2)没有接口,使用动态代理创建类的子类代理对象


AOP操作术语:
连接点
切入点 --- 可以被增强的方法
通知/增强 --- 需要增强的那一部分
切面 ---- 把增强用到切入点的过程
引介
目标对象
织入
代理

通知/增强:前置通知,后置,异常,最终,环绕(proceedingJoinPoint)


Spring的aop操作:
1.使用aspectj实现 ---- 导包,约束
(1)aspectj不是spring一部分,和spring一起使用进行aop操作
(2)Spring2.0以后新增了对AspectJ支持

2 使用aspectj实现aop有两种方式
(1)基于aspectj的xml配置
(2)基于aspectj的注解方式

使用表达式配置切入点: execution(* cn.itcast.aop.Book.*(..))

log4j:通过log4j可以看到程序运行过程中更详细的信息
1.导包,properties文件,设置级别(info,debug)


Spring整合web项目:
解决方案:
(1)在服务器启动时候,创建对象加载配置文件
(2)底层使用监听器、ServletContext对象

加载监听器: --- web.xml中
1.导包 2.ContextLoaderListener 3.指定加载的spring文件位置

posted @ 2017-03-06 01:12  随行者  阅读(152)  评论(0编辑  收藏  举报