Spring
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
◆目的:解决企业应用开发的复杂性
◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
◆范围:任何Java应用
Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。
Spring简单概述:
能够整合绝大部分框架(就像一个容器)
mybatisJDBC升级版SpringMVCservlet升级版
Spring包容框架的容器
Spring核心:IOC(控制反转)
就是将对象的控制权从代码移交给XML
三种注值
1.setter注值:根据实体类建立propertyname值,使用values赋值,需要setter
<beanid="stu"class="test.Student">
<propertyname="name"value="张三"></property>
<propertyname="num"value="1001"></property>
</bean>
2.构造器注入:根据实体类中建立构造函数,构造器,无需setter。
<constructor-arg>
<valuetype="java.lang.String">张三</value>
</constructor-arg>
3.p标签注入:要使用p标签注入必须先在配置文件中导包需要setter
导入这句话:(xmlns:p="http://www.springframework.org/schema/p")
AOP(面向切面)
1.前置增强:<aop:beforemethod="pre_study"pointcut-ref="target"/>
publicvoidpre_study(JoinPointjp){
System.out.println("我是前置");
}
2.后置增强:<aop:after-returningmethod="pre_work"returning="result"pointcut-ref="target"/>
publicvoidpre_work(JoinPointjp,Objectresult){
//result是目标方法的返回值如果目标方法是void返回值是
System.out.println("我是后置"+result+"做练习");
}
3.最终增强:<aop:aftermethod="do_final"pointcut-ref="target"/>
publicvoiddo_final(JoinPointjp){
System.out.println("我是最终增强");
}
4.异常抛出增强:<aop:after-throwingmethod="do_exception"pointcut-ref="target"throwing="e"/>
publicvoiddo_exception(JoinPointjp,Exceptione){
System.out.println("我是异常增强");
}
5.环绕增强:<aop:aroundmethod="around"pointcut-ref="target"/>
publicObjectaround(ProceedingJoinPointpjp){
System.out.println("我是环绕增强的前置增强");
try{
Objectresult=pjp.proceed();//执行目标方法获取返回值。并且获取目标方法的返回值
result="改动的返回值";
System.out.println("我是环绕增强的后置增强");
returnresult;//完美的替换目标方法的返回值
}catch(Throwablee){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnnull;
}