- 浏览: 985444 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (826)
- 硬件 (8)
- 软件 (24)
- 软件工程 (34)
- JAVA (229)
- C/C++/C# (77)
- JavaScript (8)
- PHP (1)
- Ruby (3)
- MySQL (14)
- 数据库 (19)
- 心情记事 (12)
- 团队管理 (19)
- Hadoop (1)
- spring (22)
- mybatis(ibatis) (7)
- tomcat (16)
- velocity (0)
- 系统架构 (6)
- JMX (8)
- proxool (1)
- 开发工具 (16)
- python (10)
- JVM (27)
- servlet (5)
- JMS (26)
- ant (2)
- 设计模式 (5)
- 智力题 (2)
- 面试题收集 (1)
- 孙子兵法 (16)
- 测试 (1)
- 数据结构 (7)
- 算法 (22)
- Android (11)
- 汽车驾驶 (1)
- lucene (1)
- memcache (12)
- 技术架构 (7)
- OTP-Erlang (7)
- memcached (17)
- redis (20)
- 浏览器插件 (3)
- sqlite (3)
- Heritrix (9)
- Java线程 (1)
- scala (0)
- Mina (6)
- 汇编 (2)
- Netty (15)
- libevent (0)
- CentOS (12)
- mongod (5)
- mac os (0)
最新评论
-
kingasdfg:
你这里面存在一个错误添加多个任务 应该是这样的 /** * ...
Quartz的任务的临时启动和暂停和恢复【转】 -
kyzeng:
纠正一个错误,long型对应的符号是J,不是L。
Jni中C++和Java的参数传递 -
zhaohaolin:
抱歉,兄弟,只是留下作记录,方便学习,如果觉得资料不好,可以到 ...
netty的个人使用心得【转】 -
cccoooccooco:
谢谢!自己一直以为虚机得使用网线才可以与主机连接呢。。
主机网卡无网线连接与虚拟机通信 -
yuqilin001:
要转别人的东西,请转清楚点嘛,少了这么多类,误人子弟
netty的个人使用心得【转】
简介
从OO到AOP,一路走来就是眼花缭乱的术语,蒙蔽了这些东西的本来面目。如果你还在驻足,那你就该尝试着看看这个软件开发的世界里,是谁在狂欢!
Martin Fowler
很大师,两篇论文就搞的开发界鸡飞狗跳、鸡犬不宁。一篇当然是《Inversion of Control Containers and the Dependency Injection pattern》
(04年 控制反转和依赖注入) ,另一篇则是《Continuous Integration
》(06年 持续集成)。如果提这两篇论文,则不能不说在.net开发中与之相关的框架或者工具:Spring.Net和CruiseControl.Net,而前一个也是我们要学习的对象。
八卦:中国的体制怎么没有催生出写这些论文的人呢,论文不必是该死的教授才能写的吧!
再
八卦:题外的话,研究一个人的东西先要看他的拥有技能和所处环境,否则Context就不对了。对于Martin
Fowler.我只能说深入OO,到设计模式,到重构,到测试驱动,到敏捷编程。一路下来,再认识认识Kent Beck,Rod
Johnson 。想必收获不小。
Spring.Net“翻译”自Java版本的Spring。这篇文章展示一些基本问题,关于理论性的东西最好去读读上面推荐的论文,不做累述。
环境配置
1.下载最新的框架Spring.Net 1.1.1
. 并安装。
2.新建测试的Windows Application 程序。 引用Spring.Core.dll到工程下。
3.增加配置文件App.Config,配置Spring.Net信息如下:
< configuration >
< configSections >
< sectionGroup name ="spring" >
< section name ="context" type ="Spring.Context.Support.ContextHandler, Spring.Core" />
< section name ="objects" type ="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</ sectionGroup >
</ configSections >
< spring >
< context >
< resource uri ="config://spring/objects" />
</ context >
< objects xmlns ="http://www.springframework.net" >
</ objects >
</ spring >
</ configuration >
objects标签是我们配置加载对象的地方。
加载对象
看过PetShop源代码的人对这项功能可能很熟悉,不再累述,举例说明:
以下代码加载Speaker类。
Speaker 类的代码。
using System.Collections.Generic;
using System.Text;
namespace SpringExample
{
public class Speaker
{
private string _name = " Not Modify " ;
public string Name
{
get { return _name; }
set { _name = value; }
}
private IName _nameInterface;
public Speaker()
{
}
public Speaker( string name)
{
_name = name;
}
public IName NameInterface
{
set { _nameInterface = value; }
get { return _nameInterface; }
}
}
}
按照以下步骤加载Speaker类。
1.在App.Config中配置Speaker 类的信息,注意在objects标签下。
</ object >
2.以下为调用代码
using Spring.Context.Support;
private void button1_Click( object sender, EventArgs e)
{
/* 普通调用 */
IApplicationContext ctx = ContextRegistry.GetContext();
Speaker speaker = (Speaker)ctx.GetObject( " Speaker " );
MessageBox.Show(speaker.Name);
}
执行结果为“No Modify”
属性注入和构造函数注入
注入方式有几种,可以参考Rod Johnson的《Spring框架高级编程》(Java)。 这里只以上述两种方式举例。
Speaker类的NameInterface属性是获取IName这样的接口,我们可以在Spring.Net中配置信息,让Speaker创建后就已经有了一个可以使用的IName接口。
以下为IName和NameImpl类的代码。
using System.Collections.Generic;
using System.Text;
namespace SpringExample
{
public interface IName
{
string MyName();
}
}
using System.Collections.Generic;
using System.Text;
namespace SpringExample
{
public class NameImpl:IName
{
#region IName Members
public string MyName()
{
return " From Spring " ;
}
#endregion
}
}
1.配置App.Config,为Speaker类的NameInteface属性注入NameImpl类。
< property name ="NameInterface" ref ="Impl" />
</ object >
< object name ="Impl" type ="SpringExample.NameImpl, SpringExample" >
</ object >
2.调用代码如下:
using Spring.Context.Support;
private void button3_Click( object sender, EventArgs e)
{
/* 属性注入 */
IApplicationContext ctx = ContextRegistry.GetContext();
Speaker speaker = (Speaker)ctx.GetObject( " Speaker " );
MessageBox.Show(speaker.NameInterface.MyName());
}
执行结果是"From Spring".
构造函数注入:
注意看Speaker类有一个含有一个参数的构造函数,我们这次要配置该参数的值由配置文件传入。
1.配置App.Config,为Speaker类的构造函数传入参数。
< constructor-arg index ="0" value ="From Construct" />
</ object >
2.调用代码如下:
using Spring.Context.Support;
private void button2_Click( object sender, EventArgs e)
{
/* 构造注入 */
IApplicationContext ctx = ContextRegistry.GetContext();
Speaker speaker = (Speaker)ctx.GetObject( " Speaker " );
MessageBox.Show(speaker.Name);
}
执行结果为:From Consturct
好了剩下的就是大家举一反三,从三到万了。
http://www.cnblogs.com/lwlzyjl/archive/2008/04/18/1159712.html
程序还需要引用antlr.runtime程序集
IApplicationContext ctx = ContextRegistry.GetContext()中出现问题:
1."Spring.Context.Support.ContextRegistry ”的类型初始值设定项引发异常 " 没有引用Common.Logging.dll
2.Error creating context 'spring.root': 元素 命名空间“http://www.springframework.net”中的“object”。 的子元素 命名空间“http://www.springframework.net”中的“constructor-arg”。 无效。应为可能元素的列表: 命名空间“http://www.springframework.net”中的“property, lookup-method, replaced-method, listener”。
原因:App.Config中constructor-arg 配置要要放在属性前面。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</sectionGroup>
</configSections>
<spring>
<context>
<resource uri="config://spring/objects"/>
</context>
<objects xmlns="http://www.springframework.net
">
<object name="Speaker" type="TestSpring.Speaker, TestSpring">
<constructor-arg index="0" value="From Construct"/>
<property name="NameInterface" ref="Impl"/>
</object>
<object name="Impl" type="TestSpring.NameImpl, TestSpring">
</object>
</objects>
</spring>
</configuration>
发表评论
-
spring2.0-2.5-3.0变化[转]
2011-09-10 00:50 11132.5的新特性 Spri ... -
Spring的JMX支持
2011-08-10 20:31 1146Spring的JMX支持所提供的特性使你容易而又透明地将你的S ... -
开源框架spring详解-----AOP的深刻理解
2011-07-01 18:31 1012AOP是一种不同于OOP(面向对象编程)的编程模式,它 ... -
AOP学习——配置Spring AOP【2】,使用annotation
2011-07-01 13:41 976使用 annotation 配置 AOP ... -
AOP学习——配置Spring AOP【1】,使用xml文件
2011-07-01 13:34 896使用 Spring AOP ,除了 spring ... -
Spring2.5注释语法(上)——Spring2.5注释驱动的IoC
2011-07-01 10:30 653Spring2.5 注释语法( 上) ... -
Spring2.5注释驱动与基于注释的MVC
2011-07-01 10:28 723写在前面: 好长 ... -
BoneCP,Proxool,DBCP,C3P0 参数介绍的简介与内容
2011-06-15 12:31 1170DBCP,C3P0,Proxool,BoneCP详细参数介绍 ... -
使用Spring HTTP invoker进行远程调用
2011-06-08 19:03 1033http://www.kompakar.com.cn/disc ... -
spring http invoker 高级篇
2011-06-08 19:03 1213默认情况下,客户端的HttpInvokerProxy使用J2S ... -
Spring管理Filter和Servlet
2011-06-08 19:02 954Spring 管理 filter 和 ser ... -
Spring HTTP invoker简介
2011-06-08 19:01 929Spring HTTP invoker 简介 S ... -
详解Spring Web MVC中的DispatcherServlet类
2011-06-08 00:55 1247Spring 的Web MVC框架是围绕Dispatch ... -
spring2.5注解式MVC配置
2011-06-08 00:49 1303转载自http://www.ibm.com/developer ... -
解惑 spring 嵌套事务
2011-05-13 00:28 804在所有使用 spring 的应用中, 声明式事务管理可能是使用 ... -
Spring + iBatis 的多库横向切分简易解决思路
2011-05-13 00:26 10861.引言 笔者最 ... -
Spring多数据源解决方案
2011-05-13 00:14 929在很多大型应用中都会对数据进行切分,并且采用多个数据库实例进行 ... -
Spring 初始化之旅(转)
2011-03-23 09:29 904Spring源码学习 ... -
Spring工具类,提供取得Bean的方法,方便单元测试
2011-03-15 15:46 1320Spring工具类,提供取得Bean的方法,方便单元测试 ... -
Spring 的优秀工具类盘点
2011-03-15 15:38 468Spring 的优秀工具类盘点,第 1 部分: 文件资源操作和 ...
相关推荐
SpringCloud之Eureka入门篇https://blog.csdn.net/u012081441/article/details/80708060
如何在.NET中实现脚本引擎 (CodeDom篇) .NET的插件机制的简单实现 我对J2EE和.NET的一点理解 难分难舍的DSO(一) InternalsVisibleToAttribute,友元程序集访问属性 Essential .NET 读书笔记 [第一部分] ...
hello大家好,这里是X,今天这篇博文带来的是SpringBoot安全管理:SpringSecurity,讲到安全管理,不得不说几乎所有的大型项目开发必备之一,而且有了它,对项目的安全也起到了非常大的效果,可以说是项目搭建的必备...
第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...
本文来自于博客园,本文主要介绍在项目中开始使用spring-framework的推荐方法...SpringFramework是一个开源的Java/JavaEE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本。
内容概要:该资源是Spring全家桶视频课程的第三部分Spring Boot的源码,其对于Spring Boot的最常用的第一个小程序、JavaConfig和常见注解、启动改变、热部署、Springboot整合Thymeleaf/freemarker/JSP、异常处理、...
第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...
spring一篇入门博文的配套资源,包含了第一个spring程序、IOC控制反转、DI依赖注入、静态代理、动态代理、AOP面向切面编程等源代码
http://my.oschina.net/u/136848/blog/288736 参考这个哥们写的例子 入门篇
第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...
第1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、...
学习之前建议先对依赖注入有比较清楚的认识,可以参考我的learn Spring in spring系列的第一篇。 本系列将以两个例子来讲解jsf的基本开发,第一个例子当然是hello world。目前可用的jsf ide不多,ibm要到06年才能...
本人自己写的一篇文档 主要讲了Flex开发入门的基础知识 包括java端访问以及 spring集成 以及crossdomain文件讲解 源码位于http://download.csdn.net/detail/zhaoshansanxia/4115320 其中包含parsley介绍,源码位于...
Jquery2.0实战 使用SSH框架技术开发学籍管理系 统-Hibernate 部分 ...Extjs 在 Asp.Net 中的应用基础篇 Extjs 在 Asp.Net 中的应用进阶篇 Extjs 在 Asp.Net 中的应用高级篇 .........................
这是一篇完整的论文,对初学ASP.NET者很有帮助
一、理论篇: 持续集成鼓励尽量短周期内项目团队的代码提交,同时保证每次check in都不会损害我们的构建通过。它跟每日构建的区别就在于代码提交频率更高(一般为一个小时),构建的频率也更高,这样做的目的就是...
非常入门简单的Java源码,详细的注释即便是Java入门者或者对ChatGPT一点都不了解的人都可以看懂接入的流程。 技术栈:JDK1.8,springboot,okhttp,guava 配合这篇文章使用效果更佳 ...
│ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...
│ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...