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;
}
◆目的:解决企业应用开发的复杂性
◆功能:使用基本的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;
}
上一篇: img超链接去掉蓝色边框
下一篇: C++实现堆排序代码