Spring总结

**

Spring之父:Rod Johnson

**
Spring框架
Spring是一个轻量级的企业级框架,Java EE的春天,当前主流框架,提供了IoC容器、AOP实现、DAO/ORM支持、Web集成等功能,目标是使现有的Java EE技术更易用,推进编码最佳实践

内容:
1. IOC(inversion of control )容器: 控制反转?
一切new 对象的权利交给spring!这就是控制反转.
DI(Dependency Injection): 依赖注入 ?
A类需要B类的方法来完成功能.就叫做,A依赖B

将组件对象的控制权从代码本身转移到外部容器
组件化的思想:分离关注点,接口和实现分离
依赖注入:将组件的构建和使用分开,依赖注入让组件之间以配置文件的形式组织在一起,而不是以硬编码的方式耦合在一起

步骤:
在applicationContext.xml中的标签内配置:




测试:
ApplicationContext ac =
new ClassPathXmlApplicationContext(“applicationContext.xml”); ?
A a =(A) ac.getBean(“a”);
//Object | getBean(String name) 获得Bean对象,参数为
a.a();

的value属性的两种写法:
1>

2>

彩色

  1. AOP(Aspect Oriented Programming)实现:面向切面编程 ?
    OOP(Object Oriented Programming):面向对象编程
    面向切面并不是面向对象的替代品.而是面向对象的一种有益的补充!

AOP的目标:让我们可以“专心做事”
AOP原理
将复杂的需求分解出不同方面,将散布在系统中的公共功能集中解决
采用代理机制组装起来运行,在不改变原程序的基础上对代码段进行增强处理,增加新的功能

AOP的目的是从系统中分离出切面,独立于业务逻辑实现,在程序执行时织入程序中运行

增强,我们可以对”面”加入增强或者有益的代码。
软件的设计原则: 开闭原则,对添加开放,对修改关闭。
aop就是为了解决开闭原则的。

切入点表达式:
public * *(..) : 任意返回,方法名任意,参数任意
public void *(..) : 所有公开的无返回的任意参数的方法.
public void *(models.User) 匹配具体参数
public void add*(..) 匹配add作为方法名的前缀
* dao.impl..(..) 匹配dao.impl下所有类所有方法,任意参数
dao.impl.User 可以 dao.impl.user.User 不可以
* dao.impl...(..) 匹配包以及子包中的所有类方法,任意参数(.. 匹配子包)

步骤:
1. 编写前置增强处理类:
public class BeforeCompany implements MethodBeforeAdvice {
//实现MethodBeforeAdvice接口,并重写before()方法
@Override
public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable {
}
}

  1. 编写后置增强处理类:
    public class AfterCompany implements AfterReturningAdvice {
    //实现AfterReturningAdvice接口,并重写afterReturning()方法
    @Override
    public void afterReturning(Object arg0, Method arg1, Object[] arg2, Object arg3) throws Throwable {
    }
    }

  2. 在applictionContext.xml中配置:






正则表达式:所有汉字. ?

项目的基本结构(共6层):
表示层:jsp
控制层:controller(struts的action)/servlet
业务层: service / biz 接口+实现类
数据层:dao组件
实体层:models/entity/pojo/vo/javabean
通用层:工具类,转码,加密(MD5)…

在applictionContext.xml中配置:







不用看的项目:
Spring_1_test1~Spring_1_test3

一、三种注入方式:
1.get和set : 标准

userDao类 一定要提供get和set方法

  1. P命名 : 减少配置的工作量
    1>基本数据类型的注入 p:属性名=”值”


    2>引用类型的注入 p:属性名-ref=”引用的bean id”

3.构造器
public class UserBiz implements IUserBiz {
private IUserDao userdao;
public UserBiz(IUserDao userdao){//添加一个构造方法用于构造器注入的测试
this.userdao = userdao;
}
}





二、各种数据类型的注入:
1.注入直接量(基本数据类型)
a)乔&丹 特殊符号
i.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值