欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring

程序员文章站 2022-07-08 12:05:56
...
   Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
◆目的:解决企业应用开发的复杂性
◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
◆范围:任何Java应用
Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。

  Spring简单概述:
     能够整合绝大部分框架(就像一个容器)

mybatis JDBC升级版  SpringMVC servlet 升级版

Spring 包容框架的容器

     Spring核心 : IOC (控制反转)
就是将对象的控制权从代码移交给XML

三种注值
1.setter注值:根据实体类建立propertyname值,使用values赋值,需要setter
<bean id="stu" class="test.Student">
<property name="name" value="张三"></property>
<property name="num" value="1001"></property>
</bean>
2.构造器注入:根据实体类中建立构造函数,构造器,无需setter。
<constructor-arg>
             <value type="java.lang.String">张三</value>
         </constructor-arg>

3.p标签注入:要使用p标签注入必须先在配置文件中导包 需要setter
导入这句话:(xmlns:p="http://www.springframework.org/schema/p")
   


AOP(面向切面)
1.前置增强:<aop:before method="pre_study" pointcut-ref="target"/>

public void pre_study(JoinPoint jp){
System.out.println("我是前置");
}


2.后置增强:<aop:after-returning method="pre_work" returning="result" pointcut-ref="target"/>
public void pre_work(JoinPoint jp,Object result){
//result 是目标方法的返回值  如果目标方法是void  返回值是
System.out.println("我是后置"+result+"做练习");
}


3.最终增强:<aop:after method="do_final" pointcut-ref="target"/>
public void do_final(JoinPoint jp) {
System.out.println("我是最终增强");
}

4.异常抛出增强:<aop:after-throwing method="do_exception" pointcut-ref="target" throwing="e"/>
public void do_exception(JoinPoint jp,Exception e) {
System.out.println("我是异常增强");
}

5.环绕增强:<aop:around method="around" pointcut-ref="target"/>

public Object around(ProceedingJoinPoint pjp) {
System.out.println("我是环绕增强的前置增强");


try {
Object result= pjp.proceed();   //执行目标方法 获取返回值    。并且获取目标方法的返回值

result="改动的返回值";
System.out.println("我是环绕增强的后置增强");

return result;  //完美的替换 目标方法的返回值
} catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();

return null;
}