Spring.Net学习 控制反转(IoC)和面向切面编程(AOP)
2011-02-18 13:30
876 查看
在开始写之前,先给出spring.net官方网站,在那里有大家所需要的例子和教程。
Spring.Net有两个很重要的感念就是IoC(控制反转)和DI(依赖注入)。
控制反转通俗的讲就是将对象的控制权转移给外部容器,即控制权的转移。
例:
有一个IUser接口和一个继承了他的类UseDAO,传统的实现我们会采取直接实例化接口
或者通过一个工厂类来创建这个接口的实例。
但通过spring.net的IoC实现,可以这么来写
这实际上就把UserDAO的实现交给容器处理。
上面只是简单的介绍了IoC的基本感念。具体应用看下面内容。
首先来看看项目结构
UserService
在代码中User属性和_constructor分别通过IoC容器来进行注入。
在配置文件23行开始是AOP(面向切面编程)的配置。关于具体概念可以参考中文文档和Spring.Net官网。
上面这句是配置一个通知类型,在这里用的是环绕通知(还有前置、异常、后置等通知)。
本例子只是做为spring.net的测试项目。对于spring.net的IoC和AOP的初步试验,更多关于spring.net的特性还是参考官方为准,那里提供了丰富的示例项目。
自己最近在学习spring.net,但是没有在实际的项目中使用过,因此对如何更好的使用spring.net的功能也不是很了解,希望有经验的朋友可以指点下。
代码下载和中文文档
Spring.Net有两个很重要的感念就是IoC(控制反转)和DI(依赖注入)。
控制反转通俗的讲就是将对象的控制权转移给外部容器,即控制权的转移。
例:
有一个IUser接口和一个继承了他的类UseDAO,传统的实现我们会采取直接实例化接口
IUser user = new UserDAO
或者通过一个工厂类来创建这个接口的实例。
IUser dal = UserFactory.CreateUserDao();
但通过spring.net的IoC实现,可以这么来写
IApplicationContext ctx = new XmlApplicationContext("~/SpringConfig/spring.xml"); IUser user = (IUser)ctx.GetObject("UserDAO")
这实际上就把UserDAO的实现交给容器处理。
上面只是简单的介绍了IoC的基本感念。具体应用看下面内容。
首先来看看项目结构
UserService
namespace NSpring.Service { /// <summary> /// 用户service /// </summary> public class UserService:IUserService { private IUser _user; private string _msg; private string _constructor; //构造函数注入 public UserService(string constructor) { this._constructor = constructor; } //通过属性注入 相当于替代了 IUser _user = new UserDAO把这个过程交给容器来处理 public IUser User { get { return this._user; } set { this._user = value; } } /// <summary> /// 消息内容通过属性注入 /// </summary> public string MsgInfo { get { return this._msg; } set { this._msg = value; } } /// <summary> /// 添加用户 /// </summary> /// <param name="u"></param> /// <returns></returns> public User AddUser(User u) { return User.AddUser(u); } /// <summary> /// 发送消息 /// </summary> /// <returns></returns> public string SendMsg() { return "注入的MsgInfo值是:" + MsgInfo + "<br/>" + "_constructor通过构造函数注入的值:" + _constructor; } } }
在代码中User属性和_constructor分别通过IoC容器来进行注入。
在配置文件23行开始是AOP(面向切面编程)的配置。关于具体概念可以参考中文文档和Spring.Net官网。
<object id="UserAdvice" type="NSpring.AOP.UserAdvice,NSpring.AOP"></object>
上面这句是配置一个通知类型,在这里用的是环绕通知(还有前置、异常、后置等通知)。
本例子只是做为spring.net的测试项目。对于spring.net的IoC和AOP的初步试验,更多关于spring.net的特性还是参考官方为准,那里提供了丰富的示例项目。
自己最近在学习spring.net,但是没有在实际的项目中使用过,因此对如何更好的使用spring.net的功能也不是很了解,希望有经验的朋友可以指点下。
代码下载和中文文档
相关文章推荐
- Spring.Net学习 控制反转(IoC)和面向切面编程(AOP) (转)
- spring的IOC(控制反转)与AOP(面向切面编程)
- Spring学习一:IOC(控制反转)和AOP(面向切面)的xml配置和注解方式
- Spring的控制反转(IoC)和面向切面编程(AOP)的概念浅析。
- Spring基础、IOC(控制反转)、AOP(面向切面编程)、Log4j、注解配置
- Spring基础、IOC(控制反转)、AOP(面向切面编程)、Log4j、注解配置
- Spring学习,依赖注入(DI)、控制反转(IoC)和面向切面(AOP)
- idea 实现Spring讲解(Ioc-控制反转)/Aop(面向切面的编程)
- spring的依赖注入(DI)、控制反转(IOC)和面向切面(AOP)
- java+spring切面编程(aop)spring控制反转(ioc)+hibenrate对象关系映射(ORM) 学习网址
- Spring 之 控制反转(IoC), 依赖注入(DI)和面向切面(AOP)
- 为什么说Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架?
- 记录学习的点滴(Spring控制反转、面向切面编程)
- Spring框架总结,控制反转(IOC),依赖注入(DI),面向切面编程(AOP)
- 笔记——spring基本使用(控制反转IOC、面向切面编程AOP、声明式事务)
- SPRING--Spring中IOC(反转控制) 和 AOP(面向方面编程)
- java+spring切面编程(aop)spring控制反转(ioc)+hibenrate对象关系映射(ORM) 学习网址
- Spring学习之路第一步 : xml方式实现IOC(控制反转)
- SSH专业课学习(一)spring的IOC(控制反转)
- Spring学习笔记(AOP面向切面编程)