`
balaschen
  • 浏览: 192664 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

asp.net 和spring集成的另一种思路

阅读更多

因项目需要,从Java转.NET,对C#是门外汉

目前asp.net 和 spring.net的集成,需要把要被注入的bean在web.config中配置,相当的不爽,因此准备自制轮子。

实验思路:

鉴于一般把处理业务逻辑的代码从aspx页面单独分离出来成为一个继承自Page的Class,所以可以从这个地方入手,把所有需要注入的bean定义在class文件中,为了提高效率,自定义了InjectAttribute标注需要被注入的Set方法,以下是实验过程:

 

[AttributeUsage(AttributeTargets.Method)]
    public class InjectAttribute : Attribute {
        private String beanName;
        public InjectAttribute(String beanName) {
            this.beanName = beanName;
        }

        public String BeanName {
            get { return this.beanName; }
        }
    }

 

  实验类:

 

public class PageInfo {
        private String userName;
        private String password;

        [Inject("balas")]
        public void SetUserName(String userName) {
            this.userName = userName;
        }

        [Inject("pwd")]
        public void SetPassword(String password) {
            this.password = password;
        }

        public String UserName {
            get { return this.userName; }
        }
    }

 

   实验获取某个类标注有Inject自定义Attribute的方法:

 

public class Program {
        static void Main(string[] args) {
            PageInfo page = new PageInfo();
            page.SetUserName("keven chen");

            Console.WriteLine("Hello World,"+page.UserName);

            Type type = page.GetType();
            
            MethodInfo[] methods =  type.GetMethods();
            for (int i = 0; i < methods.Length; i++) {
                Boolean find = false;
                foreach (Attribute attr in methods[i].GetCustomAttributes(typeof(InjectAttribute), false)) {
                    if (attr is InjectAttribute) {
                        find = true;
                        Console.WriteLine(((InjectAttribute)attr).BeanName);
                        break;
                    }
                }
                if (find) {
                    Console.WriteLine(methods[i].Name);
                }
            }
            MethodInfo method = type.GetMethod("SetUserName");
            if (null != method) {
                method.Invoke(page, new object[] {"bribin"});
            }

            Console.WriteLine(page.UserName);
            
           
        }
    }

 

从控制台输出,已经可以正确的获取Inject的方法,下一步就可以根据需要注入的beanName从sping获得,然后注入。

分享到:
评论

相关推荐

    Spring.NET框架参考文档

    6. **IoC(Inversion of Control,控制反转)**:这是DI的另一种表述,Spring.NET通过控制反转实现了组件间的解耦,使得组件不再需要自行创建或查找其依赖,而是由容器负责管理和提供。 7. **企业服务集成**:...

    spring .net学习 完整 demo four

    2. **IoC容器**:IoC(Inversion of Control)是DI的另一种表述,Spring.NET中的IoC容器负责创建、配置和管理对象。它根据配置信息组装对象图,使得组件间的依赖关系由容器自动处理,而不是由组件自身管理。 3. **...

    各种ASP.NET JAVA网盘源码收集

    综上所述,这个主题涵盖了使用ASP.NET和JAVA开发企业网盘的各种技术点,包括但不限于MVC架构、文件上传、断点续传、大文件处理、用户权限控制和数据库集成等。通过研究这些源码,开发者能够深入理解Web应用的开发...

    Spring.NET-1.3.2.zip + Spring学习笔记

    **面向方面编程(AOP)** 是Spring.NET提供的另一重要工具,它允许开发者将横切关注点(如日志、事务管理、安全检查等)从核心业务逻辑中分离出来,以提高代码的模块化和重用性。Spring.AOP模块提供了实现AOP的基础...

    《Spring.NET框架参考文档》中文版.chm

    6. **Web支持**:Spring.NET Web模块提供了对ASP.NET MVC和WCF的支持,包括模型绑定、验证、命令模式以及控制器的依赖注入。 7. **测试支持**:Spring.NET提供了测试工具和设施,如Spring.Testing,使得单元测试和...

    spring.net

    3. **面向切面编程(AOP)**:AOP是Spring.NET中的另一个重要特性,它提供了一种在不修改原有代码的情况下,添加新的功能或行为的方法。通过定义切面(Aspect),可以在多个类或方法中统一处理横切关注点,如日志、...

    ASP.NET工程师培训3

    ASP.NET是微软公司推出的一种用于构建Web应用程序的技术框架,它基于.NET Framework,为开发者提供了丰富的工具和库,简化了Web开发流程。在这个“ASP.NET工程师培训3”中,我们将深入探讨ASP.NET的核心概念、关键...

    Spring.NET框架中文参考文档(API)

    它集成了ASP.NET的身份验证和授权机制,提供了一种统一的方式来处理应用程序的安全需求。 九、企业级应用示例 文档中可能包含各种企业级应用示例,如CRM系统、电子商务平台等,这些示例展示了Spring.NET在实际项目...

    C#、ASP.Net、Net、Java面试题

    2. Web Forms:另一种模型,使用控件和事件驱动的编程模型,适合快速开发。 3. Razor语法:简洁的视图引擎,允许在HTML中嵌入C#代码,简化视图的编写。 4. SignalR:用于实时通信,支持服务器推送,适用于聊天应用、...

    基于ASP.net的工作记忆容量测试系统源码.zip

    - **PHP**:另一种常见的Web开发语言,常用于动态网站构建,与ASP.NET相比,PHP更倾向于轻量级和跨平台,但在大型企业级应用方面不如ASP.NET强大。 【压缩包子文件的文件名称列表】: MF00175-工作记忆容量 这个...

    494_asp.net企业人力资源管理系统_薪资管理系统_奖惩管理系统.rar

    虽然标题和描述中提及的是ASP.NET,但"JAVA"标签可能是误标,因为ASP.NET和Java是两种不同的编程语言,分别用于.NET和Java平台。如果系统确实使用了Java,那可能意味着系统的一部分或者另一个版本是用Java编写的,...

    Spring for C# and NHibernate整合文档

    Spring.NET是基于Java Spring 框架的一个移植版本,它为C#程序员提供了一种模块化和松耦合的开发方式。依赖注入是其核心特性之一,它允许开发者在运行时通过外部配置来管理对象的创建和依赖关系,从而降低了代码的...

    Java和.Net在做BS结构项目的比较 项目技术路线分析

    ASP.Net是其用于Web开发的主要组件,支持MVC和Web Forms两种模式。ASP.Net MVC框架提供了清晰的代码结构,有利于测试驱动开发。Entity Framework是.Net的ORM解决方案,同样简化了数据库操作。.Net还拥有强大的Visual...

    Java和.net的笔记

    3. 类库和框架:两者都有丰富的第三方库和框架,如Java的Spring、Hibernate,.NET的ASP.NET、Entity Framework。 4. 性能:.NET在某些情况下可能表现出更好的性能,但Java的JIT编译和垃圾回收机制也有其优势。 5. ...

    SpringNETkjckwdchm开发文档

    Spring.NET的Web模块为ASP.NET应用提供了一种更优雅的架构方式。它包含Web Forms、MVC和Web服务的支持,以及模型绑定、过滤器、控制器等概念,帮助开发者构建更加模块化和可测试的Web应用。 六、IoC容器 Spring.NET...

    ASP《软件工程》精品课程教学网站的设计与实现(源代码+论文).rar

    首先,ASP.NET是一种由微软开发的服务器端Web应用程序框架,用于构建动态网站、Web应用和Web服务。它集成了开发工具、语言支持(如C#或VB.NET)以及IIS服务器,使得开发者能够快速创建功能强大的Web应用程序。在本...

    基于SSH的医院分诊管理系统源码.zip

    【PHP】同样,PHP是另一种常用的服务器端脚本语言,常用于Web开发,它在动态网站和Web服务方面表现出色,但在此系统中并非主要技术栈。 【MF00325-Java医院分诊管理系统源码】这个文件名可能是项目的内部标识,表示...

    计算机专业毕业设计参考题目 (5).docx

    Visual Basic .NET是.NET框架下的另一种编程语言,易学易用。可能的题目有:开发一个简单的库存管理系统、创建一个使用VB.NET的自动化办公工具或构建一个基于Windows Forms的教育软件。 7. VC 类计算机专业毕业...

    J2EE应用开发_初识J2EE

    - **与PHP比较**:PHP是另一种非常流行的服务器端脚本语言,主要用于Web开发。相较于JSP,PHP的语法更加简洁,学习曲线较低,因此在入门阶段可能会更容易接受。然而,JSP的优势在于其背后的强大Java生态系统,提供了...

Global site tag (gtag.js) - Google Analytics