spring mvc两大核心技术:1控制反转 2面向切面的编程
2016-05-25 23:07
585 查看
1控制反转就是:
1)调用某个类的一个方法,将该类引入成员变量,直接调用成员变量类的那个方法即可,不用new,spring mvc替你new了。
2)接口编程,你只调用接口的某个方法就行了。
有的工程使用spring mvc的控制反转水平比较低,其spring mvc框架只实现了1)。而有的工程控制反转水平高,其spring mvc框架实现了1)和2)。
1.1举个例子:
有这么个LoginAction类,它想调用AdminService的hello()方法的时候,不引入控制反转,需要自己new;引入控制反转,就不用自己new了,直接调用就行。
public class LoginAction extends ActionSupport
{
private AdminService adminService = null;
public String execute() throws Exception
{
//spring mvc的控制反转中,spring mvc就是提我们new了一下而已.那么目的是什么?实现了接口和实现的分离,使得调用接口时不用关注他是怎么实现的。
//不引入控制反转
//开始
AdminService aa=new AdminServiceIMP();
String b=aa.hello();
System.out.println("##########################BBBBBBBBBBBB"+b);
//结束
//引入控制反转
adminService.hello();//该种方式和//开始//结束之间的代码等效
}
其spring的配置文件中,控制反转的配置如下:
<bean name="login" class="com.example.struts.LoginAction">
<property name="adminService">
<ref local="AdminService" />
</property>
</bean>
<bean id="AdminService" class="com.example.service.AdminServiceIMP">
</bean>
AdminService接口和AdminServiceIMP实现类如下:
public interface AdminService
{
String hello();
}
public class AdminServiceIMP implements AdminService
{
public String hello()
{
return "hello";
}
}
2面向切面的编程
面向切面的编程,就是jf框架的@before字段。就是在一个类的某方法开始前或者结束后,插入一段代码,这样就可以在不动原来的代码基础上进行条件验证等操作。便于后期的程序扩展,这种扩展不用对之前的代码做修改。
1)调用某个类的一个方法,将该类引入成员变量,直接调用成员变量类的那个方法即可,不用new,spring mvc替你new了。
2)接口编程,你只调用接口的某个方法就行了。
有的工程使用spring mvc的控制反转水平比较低,其spring mvc框架只实现了1)。而有的工程控制反转水平高,其spring mvc框架实现了1)和2)。
1.1举个例子:
有这么个LoginAction类,它想调用AdminService的hello()方法的时候,不引入控制反转,需要自己new;引入控制反转,就不用自己new了,直接调用就行。
public class LoginAction extends ActionSupport
{
private AdminService adminService = null;
public String execute() throws Exception
{
//spring mvc的控制反转中,spring mvc就是提我们new了一下而已.那么目的是什么?实现了接口和实现的分离,使得调用接口时不用关注他是怎么实现的。
//不引入控制反转
//开始
AdminService aa=new AdminServiceIMP();
String b=aa.hello();
System.out.println("##########################BBBBBBBBBBBB"+b);
//结束
//引入控制反转
adminService.hello();//该种方式和//开始//结束之间的代码等效
}
其spring的配置文件中,控制反转的配置如下:
<bean name="login" class="com.example.struts.LoginAction">
<property name="adminService">
<ref local="AdminService" />
</property>
</bean>
<bean id="AdminService" class="com.example.service.AdminServiceIMP">
</bean>
AdminService接口和AdminServiceIMP实现类如下:
public interface AdminService
{
String hello();
}
public class AdminServiceIMP implements AdminService
{
public String hello()
{
return "hello";
}
}
2面向切面的编程
面向切面的编程,就是jf框架的@before字段。就是在一个类的某方法开始前或者结束后,插入一段代码,这样就可以在不动原来的代码基础上进行条件验证等操作。便于后期的程序扩展,这种扩展不用对之前的代码做修改。
相关文章推荐
- Spring学习(六)实例演示Spring的使用
- Oauth2.0 用Spring-security-oauth2
- java String
- 为什么要使用MVC模式,MVC模式的优势有哪些?请写出你熟悉的MVC轻量级框架名称。
- java中数据类型转换
- SpringMVC学习--入门程序
- Spring Security 的login(登录页)重构
- Java之------socket网页蜘蛛(多线程版)爬邮箱
- 《Spring设计思想》AOP实现原理(基于JDK和基于CGLIB)
- Rxjava Subject分析
- 《Spring设计思想》AOP设计基本原理
- java 移动文件到其他文件夹(move)
- JAVA中的Random()函数
- Java设计模式(四):原型模式Prototype
- Java 内部类访问格式
- error和exception有什么区别?
- java的primitive主数据类型和引用
- 异常整理之:java.lang.NoClassDefFoundError:org/hamcrest/SelfDescribing
- struts2的一点知识(引入别人的项目,path问题,package的名字不能一样哦 )
- 是不是有经验的JavaEE开发者,看你json玩的6不6(下)