JFinal IOC

JFinal的IOC插件
授权协议 GPL
开发语言 Java
所属分类 程序开发、 面向方面AOP/IoC
软件类型 开源软件
地区 国产
投 递 者 袁运锋
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

JFinal的ioc插件

JFinal_ioc是JFinal的ioc插件,目的就是为了像spring的注入功能一样方便简单。


习惯在spring下通过注解的方式扫描service层,然后在controller的注入使用,在JFinal下自己写个插件和一个全局拦截器来实习这些功能。
希望各位大神给予宝贵意见

遵循JFinal的传统,依然是0配置,so bean的添加在JFinalConfig的继承类中

JFinal_IOC插件
可以通过add()方法和addPackage()方法添加bean
bean可实现单例模式。可以自定义获取bean的key值
获取bean的方法getBean(String key)、getBean(Class<?> key)
当然最重要的功能是可以通过注解@Server和@Autowired来实现ioc


@Overridepublic void configPlugin(Plugins me) {

    //添加插件
    Ioc ioc = Ioc.getIoc();
    me.add(ioc);
    //自动扫描com.blog.service下有@Server注解的类,为single模式
    ioc.addPackage("com.blog.service",true);
    //添加单个bean
    //ioc.add("articleManager",ArticleManager.class,false);}
    @Override
    public void configInterceptor(Interceptors me) {
    //配置全局拦截器,当controller里字段加@Autowired注解后自动根据其类型或value注入
    me.add(new AutowiredInterceptor());}/**
*Controller类
*/public class BlogController extends Controller {

    //两种注入都可以
    @Autowired
    private ArticleManager articleManager;
    //= (ArticleManager)Ioc.getBean(ArticleManager.class);

测试用的类在com.test.Test里有

package com.test;

import java.lang.reflect.Field;
import com.anna.config.Ioc.Autowired;
import com.anna.config.Ioc.Ioc;
import com.blog.service.ArticleManager;

public class Test {

    public void print(){
        System.out.println("Hello Ioc");
    }

    public static void main(String...args){
        Ioc ioc = Ioc.getIoc();

        ioc.addPackage("com.blog.service",true);
        ioc.add("test",Test.class,true);
        Test test = (Test) Ioc.getBean("test");

        ArticleManager articleManager = (ArticleManager)Ioc.getBean(ArticleManager.class);
  
        articleManager.pri();
 
        test.print();
    }
}
  • 对IOC的总结 IOC是一个容器,帮我们管理所有组件 依赖注入:@Autowired:自动注入某个组件要使用Spring提供的更多(IOC、AOP)必须加入到容器中; 体会:容器启动,创建所有单实例bean;Autowired自动装配的时候,是从容器中找这到这个bean; Ioc.getBean(“bookServlet”)也是从容器中找到这个bean;容器中包含了所有的bean; 调试sprin

  • 浅谈 Spring IOC和AOP IOC 控制反转 以前创建对象的主动权和时机是由于自己把握的,现在将这种权利转移到Spring容器中,并且根据配置文件去创建对象管理对象 ioc的注入方式有三种:构造器注入,setter方法注入,根据注解注入 在Spring里面,主要提供了BeanFactory和ApplicationContext两种IOC容器,通过他们来实现Bean的管理 IOC和DI(依赖

  • Spring 的AOP 理解? OOP 面向对象,允许开发者定义纵向的关系,但并适用于定义横向的关系,导致了 大量代码的重复,而不利于各个模块的重用。 AOP,一般称为面向切面,作为面向对象的一种补充,用于将那些与业务无关,但 却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命 名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了 系统

 相关资料
  • Ioc

    Ioc 实际上一种将应用的耦合集中在一起管理的一种程序结构设计方式。耦合集中的具体形式 一般是各种格式的配置文件。比如 Spring 就有它自己的配置文件格式的规定。 Nutz.Ioc 在设计之初就没有特别假定用户会把配置文件存成某种特定的格式,关于这点,各位 可以参看 定义自己的配置文件格式 一文。 同时,我们发现,在实际应用的时候,应用程序的耦合大概分做两种: 千秋万载,基本不变 部署之时,可

  • Ioc

    无论是 XML 还是 JSON,都需要你创建一个新的配置文件,在里面描述你的对象依赖关系。一般的来说, 一个应用大多数的对象依赖关系,是固定的,即,在项目发布以后是不必调整的。如果将这些依赖关系通通写到 配置文件中,颇有点"脱了裤子放屁"的感觉,最理想的情况是,将可能变动的依赖关系写到配置文件里,而将不怎么 会变动的依赖关系写成 Java 的注解 (Annotation), 如果能这样的话,一切就

  • 什么是IOC? IoC(Inversion of Control),意为控制反转,不是什么技术,而是一种设计思想。Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。 如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下: 谁控制谁,控制什么:传统Java SE程序设计,我们直接在对

  • 主要内容:控制反转(IoC),依赖注入(DI),IoC 的工作原理,IoC 容器的两种实现IoC 是 Inversion of Control 的简写,译为“控制反转”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。 Spring 通过 IoC 容器来管理所有 Java 对象的实例化和初始化,控制对象与对象之间的依赖关系。我们将由 IoC 容器管理的 Java 对象称为 Spring Bean,它与使用关键字 new 创建的

  • 3.2. IoC Spring 2.0 相当大的改进之一就是Spring的IoC容器。 3.2.1. 更简单的XML配置 多亏了新的XML配置语法的产生,Spring的XML配置变的更加简单了。如果你想充分利用Spring提供的新标签(Spring团队当然建议你这么做,因为他们使配置变的不再繁琐,更加易于阅读),请阅读标题为 附录 A, XML Schema-based configuration

  • Spring容器是Spring Framework的核心。 容器将创建对象,将它们连接在一起,配置它们,并管理从创建到销毁的整个生命周期。 Spring容器使用DI来管理组成应用程序的组件。 这些对象称为Spring Beans,我们将在下一章中讨论。 容器通过读取提供的配置元数据获取有关要实例化,配置和组装的对象的指令。 配置元数据可以由XML,Java注释或Java代码表示。 下图表示Spri

  • 在上文 Tomcat 实现 根据 web.xml 文件配置和浏览器请求,生成对应的 Servlet 响应请求的基础上,本文主要思考的问题是 Spring 中的对象依赖关系管理(IoC)如何实现。 1. 实现功能 1.1 配置依赖 <dependencies> <dependency> <groupId>org.springframework</groupId

  • Ioc 什么是 IoC IoC 的全称叫做 Inversion of Control,可翻译为为「控制反转」或「依赖倒置」,它主要包含了三个准则: 高层次的模块不应该依赖于低层次的模块,它们都应该依赖于抽象 抽象不应该依赖于具体实现,具体实现应该依赖于抽象 面向接口编程 而不要面向实现编程 Ioc 演进 演进 1-简单的 App 假设需要构建一款应用叫 App,它包含一个路由模块Router 和一