为什么必须用IOC(DI),实际上是出于在设计上的一种关注分离观念,使得系统各部分独立演化,不相互影响,使得系统能够适应环境变化的要求。
但是问题是:A:依赖的判定,现在依赖于XML配置文件的事先说明,大量的XML造成加载变慢,测试时虽然只关注涉及到的对象,但是全部加载了定义数据,使得速度很慢,另外XML臃肿带来的问题也不小。本来是为了简化系统的构建,但是我们除了在开发Bean的工作量,还不得不更多的维护配置。
对IOC容器改进的想法(有待实现):
采用Coc(约定优于配置),这个SpringX已经先前一步了,对于明确类型的依赖关系,采用反射判断属性类型并实例化后注入。
对于基于接口的依赖,因为没有指明具体的依赖目标类,只能通过XML说明,那么这样做就能大大简化XML配置文件,另外因为在获得“主”对象,Bean.Factory.CreateBean(TargetType.class)可以指明一个依赖注入的方向,就是针对target type的,那么IOC容器就没有必要把所有BeanDefinition导入,测试一个Bean也只加载和此Bean相关的东西,速度很快,配置也简单。
不过Coc的IOC也有问题,就是我们注入不是对象而是值,如果全部采用Coc,只能初始值为0或空,也许你会说不是还有XML来指明吗?但是这样的注入值会有多少?你无法假定,这和具体的功能实现有关,根本无法假定,不过>1个或者超出100个都有可能,注定在特定情况下会使XML配置再度臃肿,虽然启动速度仍然可能很快,但是针对XML的维护量也是不少的。这样的话,我的想法是,分析一下很多时候确实需要几个初始化的固定数值注入到目标对象中,比如想初始化一个列表的大小为10,不过还有其他一些值,是依赖于运行时的,比如一个值由另外一个东东获得,那么可不可以做一个可以注入注出变量的中间地带,在另个对象的提供的数值变化后,本对象就能自动获得?即使是在初始化的时候,而提供值的对象被设计成不需要固定值初始化的, 它可以根据某些逻辑自己提供值,这样也能大大简化XML配置和BeanDeiniftion加载的情况。
不知道其他人的想法如何?讨论一下
分享到:
相关推荐
1. 零配置启动,遵循约定优于配置的原则,支持代码和配置文件两种扩展方式。 2. 仅依赖Servlet,通过插件与Spring等框架集成。 3. 优化项目结构,简化代码和资源的组织。 4. 提供多层次的拦截器,增强控制和过滤功能...
系统的开发使用了Spring Boot框架,这是Spring家族中一个重要的组件,它简化了基于Spring的应用开发过程,通过约定优于配置的理念,提供了快速开发的能力。Spring Boot能够帮助开发者快速搭建项目,减少不必要的配置...
它对“约定优于配置”的原则有着坚定不移的追求,从而使得开发者可以更专注于项目的业务逻辑而无需从零开始搭建每个组件。使用Django框架,开发者可以轻松创建安全的、可维护的和可扩展的网站。 在项目学习分享方面...
Spring Boot作为Java开发的首选框架,因其约定优于配置、简化配置、独立运行等特性而备受开发者青睐。而Vue.js作为一个渐进式JavaScript框架,被广泛应用于构建用户界面,尤以单页应用的快速开发闻名。 本项目采用...
springboot是一个轻量级的Java框架,它简化了基于Spring的应用开发,通过约定优于配置的理念,简化了配置过程,使得开发者能够更快速、更简便地构建独立的、生产级别的基于Spring框架的应用。 该系统的核心目标是...
SpringBoot通过提供一系列的默认配置,实现了“约定优于配置”的理念,大大加快了项目的开发效率。 SpringBoot家政服务管理平台是一类应用该框架的特定软件项目,它的开发目标是为家政服务行业提供一个便捷、高效的...
在开发环境中,本项目采用了SpringBoot框架,这是一个简化Spring应用开发的框架,它继承了Spring原有的所有优秀特性,并通过约定优于配置的原则简化了项目的配置和部署过程。Mysql数据库作为后端数据存储的媒介,...
SpringBoot框架作为目前流行的后端框架之一,拥有配置简洁、约定优于配置的特点,通过整合Mybatis、SpringMVC等技术,简化了后端开发流程。Mybatis提供自动映射、动态SQL和代码优化等特性,提高数据库操作的效率。...
使用Maven或Gradle的约定优于配置原则,可以使项目结构更加一致。 7. 异常规范:异常处理是保证程序健壮性的关键。应明确区分异常类型,避免空指针、数组越界等常见错误,使用try-catch-finally语句捕获和处理异常...
Stripes通过利用Java 5的新特性,比如注解(Annotations),遵循“Convention over Configuration”(约定优于配置)的设计原则,大大简化了配置过程。开发者只需在Java代码中添加少量的注解即可完成原本需要在XML...
在Spring Boot中,开发者可以使用“约定优于配置”的原则,大量减少配置文件的工作,快速搭建起一个运行的项目。Spring Boot的出现,得益于Spring框架的广泛应用,以及对现代应用程序开发中遇到的难题,如快速启动、...
该项目以JavaWeb技术为基础,旨在通过提供约定优于配置、减少编码量、提高开发效率和减少项目维护成本的特点,吸引开发者的注意。本技术文档将详细探讨Guns项目的各个方面的使用方法、开发实践以及一些高级配置选项...
它集成了大量常用的第三方库配置(如DataSource、JPA、MVC等),通过“约定优于配置”的原则,极大地提高了开发效率。 2. **Web应用程序开发**:SpringBoot主要用于快速开发基于Java的Web应用。它包含内嵌的Servlet...
SpringBoot作为Java社区中的一个新兴框架,它基于Spring框架,极大地简化了基于Spring的应用开发过程,通过约定优于配置的理念,帮助开发者快速搭建项目结构并启动开发。 Vue.js作为渐进式JavaScript框架,其核心库...
1. **配置减少**:由于引入了约定优于配置的原则,大部分配置工作已经被简化或取消。在作者的最近项目中,除了`persistence.xml`外,几乎不再使用XML文件。 2. **EJB3特性**:EJB 3.0及更高版本中的组件本质上只是...
java版电商源码数据工程 您将如何引导数据团队? 下面是关于如何建立梦想数据团队的任务、资源、工作...约定优于配置优于编码。 多思考少打字 把事情简单化 重用而不是集成而不是构建。 面向服务(CLI、Web HTTP API、
Maven 通过约定优于配置的原则,使得构建过程更加简洁明了。 2. **C 和 C++ 构建工具**:C/C++ 领域常见的构建工具有 Make、CMake 和 Bazel。 - **Make**:基于 Makefile 文件,是最早的构建工具之一。虽然功能...
SpringBoot是Spring开源项目中的一个子项目,它通过约定优于配置的理念简化了Spring应用的搭建和开发过程。SpringBoot可以自动配置Spring应用,极大地减少了开发中需要配置的时间和精力,使得开发者可以专注于业务...
Spring Boot是一个能够简化新Spring应用的初始搭建以及开发过程的框架,它基于约定优于配置的理念,使用它可以更快速地进行Spring应用开发。本系统旨在为Cosplay爱好者提供一个便捷的在线交流平台,通过论坛这种形式...
同时,系统后端采用了SpringBoot框架,这是Java社区非常受欢迎的一个框架,其约定优于配置的理念极大地简化了后端服务的搭建和维护。通过SpringBoot的自动配置能力,开发者可以更加专注于业务逻辑的实现。 在数据库...