Java 依赖注入框架 Simba

码农软件 · 软件分类 · 面向方面AOP/IoC · 2019-09-28 23:43:46

软件介绍

Simba是基于Java的依赖注入和AOP框架

  • 轻量级的依赖注入和AOP框架

  • 使用XML方式定义依赖注入

  • 支持面向切面的编程方式

安装方式

<dependency>
    <groupId>org.pinae</groupId>
    <artifactId>simba</artifactId>
    <version>1.1</version>
</dependency>

XML定义方式

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../bean.xsd">
    <bean name="PersonFactory" class="org.pinae.simba.context.resource.Person"
        factory-bean="org.pinae.simba.context.resource.PersonFactory" 
        factory-method="getPerson"
        create="create" run="run" singleton="true" 
        timeout="3" destroy="destroy">

        <property name="name">
            <reflection>Name</reflection>
        </property>
        <property name="age">
            <value>27</value>
        </property>
        <property name="email">
            <value>interhui@21cn.com</value>
        </property>
        <property name="admin">
            <value>true</value>
        </property>
    </bean>

    <bean name="Name" class="org.pinae.simba.context.resource.Person.Name">
        <constructor>
            <value>hui</value>
            <value>yugeng</value>
        </constructor>
    </bean>
</beans>

Java Bean

public class Person {

    private static Logger log = Logger.getLogger(Person.class);

    private Name name;
    private int age;
    private String email;
    private boolean admin;

    public Name getName() {
        return name;
    }
    public void setName(Name name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public boolean isAdmin() {
        return admin;
    }
    public void setAdmin(boolean admin) {
        this.admin = admin;
    }
    public void create(){
        log.debug("Create Person Bean");
    }
    public void run(){
        this.age ++;
    }
    public void destroy(){
        log.debug("Destory Person Bean");
    }

    public class Name {
        private String firstName;
        private String lastName;

        public Name(String lastName, String firstName){
            this.lastName = lastName;
            this.firstName = firstName;
        }
        public String getFirstName() {
            return firstName;
        }
        public void setFirstName(String firstName) {
            this.firstName = firstName;
        }
        public String getLastName() {
            return lastName;
        }
        public void setLastName(String lastName) {
            this.lastName = lastName;
        }
    }
}

实例程序

public class DemoTestManager {

    private static Logger log = Logger.getLogger(DemoTestManager.class);

    public static void main(String arg[]) throws Exception {
        ResourceContext bean = new FileSystemResourceContext("Person.xml");
        Person person = (Person)bean.getBean("PersonFactory");

        logger.debug(person.getName().getLastName() + ":" + person.getEmail());
    }
}

本文地址:https://codercto.com/soft/d/15627.html

数据结构与算法

数据结构与算法

BrunoRPreiss / 电子工业出版社 / 2003-1 / 55.00元

本书是作者根据他在滑铁卢大学计算机工程学院教授数据结构与算法课程的经验编写而成的。它采用C++面向对象的设计模式,不仅系统全面地介绍了各种传统的数据结构,还把它们按照类和类层次的现代理念予以展开,进而达到抽象结构与实际设计的完美统一。本书的后三章通过引入抽象问题求解的概念,集中讲述了算法技术和各算法之间的关系。另外,作者运用一定的数学工具以及必要的分析技术和分析理论,对每种数据结构及相关算法都进行一起来看看 《数据结构与算法》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具