Simba

Java 依赖注入框架
授权协议 Apache
开发语言 Java
所属分类 程序开发、 面向方面AOP/IoC
软件类型 开源软件
地区 国产
投 递 者 罗新
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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());
    }
}

  • java.sql.SQLException: [Simba]ImpalaJDBCDriver ERROR processing query/statement. Error Code: java.net.SocketException: Broken pipe (Write failed), SQL state: HY000, Query: select count(*) from 建立jdbc

  • Abstract 大空间数据变得无处不在。因此,为基于位置的服务(LBS)中的众多应用提供快速、可扩展和高吞吐量的空间查询和分析是至关重要的。 传统的空间数据库和空间分析系统基于磁盘,并针对IO效率进行了优化。但越来越多的数据存储和处理在内存中以实现低延迟,CPU时间成为新的瓶颈。我们介绍了Simba(空间内存大数据分析)系统,该系统为大空间数据提供可扩展和高效的内存空间查询处理和分析。Simba

  • impala JDBC连接impala表(impala和kudu关联表)进行upsert,delete操作,upsert操作没有任何问题,但是delete操作报错,完整错误如下: [Simba][ImpalaJDBCDriver](500323) Error processing query translation statement. java.sql.SQLException: [Simba]

  • 分区器是Spark中的一个概念,Spark依据分区器定义的分区规则把数据划分到多个数据分区,每个数据分区在一个task中由一个executor进行处理。开发者可以方便地继承Partitioner接口实现自己的分区器,定义numPartitions规定RDD的分区数以及在getPartition中实现分区规则。 abstract class Partitioner extends Serializa

  • abs 大型空间数据变得无处不在。因此,为基于位置的服务(LBS)的众多应用提供快速、可扩展和高吞吐量的空间查询和分析至关重要。传统的空间数据库和空间分析系统是基于磁盘的,并为IO效率而优化。但是,越来越多的数据被存储和处理在内存中以实现低延迟,CPU时间成为新的瓶颈。我们提出了Simba(空间内存大数据分析)系统,该系统为大空间数据提供可扩展和高效的内存空间查询处理和分析。Simba以Spark

  • 问题:   Impala JDBC Driver returns [Simba]ImpalaJDBCDriver Error setting/closing session: {0}   解决思路: 出现问题的原因是因为JDBC端口设置错误。 Configuring the JDBC Port The default port used by JDBC 2.0 and later (as well

  • 今天使用impala jdbc preparedStatement 尝试执行sql一直报这个错,查了半天,没找到原因。 最后仔细检查了下,发现因为是我测代码的时候是从createStatement复制过来的: connection.prepareStatement(sql) ResultSet resultSet = statement.executeQuery(sql) 只改了第一行代码,第二

  • Ubuntu下安装Simba服务器将linux电脑上的内容共享,同一局域网内的另外一台Windows PC即可访问其共享内容, 从而实现Windows电脑向访问本地文件一样访问Linux文件系统的内容。 (1)安装Simaba服务器 sudo apt-get install samba (2)安装samba图形化配置软件 sudo apt-get install system-config-sam

  • Simba on the Circle  题意:长度为n的环,第i个数字为ai。 从起点s出发,走一个格子的花费为1,输出当前数字的花费为0,输出n个数的非递减序列的最小花费是多少,并打印方案。 若ai都不相同的话就很好做了,考虑值相同的ai作为一段,其中肯定有一个起点和终点,即这一段第一个走的i和最后一个走的i,从起点向同一个方向走到终点走完所有ai肯定是最优的。(终点就在起点旁边→_→) dp

 相关资料
  • 在不讨论原因的情况下,假设有人想要一个老式的Play Framework web服务,并且不想使用依赖注入,也不想依赖Google的Guice。在玩法2.8.x中还可能吗? 有没有一个简单的方法可以让你不去这里就呆在老学校里? 我承认,但不完全理解https://www.playframework.com/documentation/2.4.x/migration24。我认为我的问题与2.7中删除

  • 在React中,想做依赖注入(Dependency Injection)其实相当简单。请看下面这个例子: // Title.jsx export default function Title(props) { return <h1>{ props.title }</h1>; } // Header.jsx import Title from './Title.jsx'; export defa

  • 依赖注入 Dependency Injection is a strong mechanism, which helps us easily manage dependencies of our classes. It is very popular pattern in strongly typed languages like C# and Java. 依赖注入是一个很强大的机制,该机制可以帮

  • 简介 Hyperf 默认采用 hyperf/di 作为框架的依赖注入管理容器,尽管从设计上我们允许您更换其它的依赖注入管理容器,但我们强烈不建议您更换该组件。 hyperf/di 是一个强大的用于管理类的依赖关系并完成自动注入的组件,与传统依赖注入容器的区别在于更符合长生命周期的应用使用、提供了 注解及注解注入 的支持、提供了无比强大的 AOP 面向切面编程 能力,这些能力及易用性作为 Hyper

  • 出自维基百科 Wikipedia: 依赖注入是一种允许我们从硬编码的依赖中解耦出来,从而在运行时或者编译时能够修改的软件设计模式。 这句解释让依赖注入的概念听起来比它实际要复杂很多。依赖注入通过构造注入,函数调用或者属性的设置来提供组件的依赖关系。就是这么简单。

  • 问题内容: 我想知道 _什么是Spring Framework? 为什么和何时应该在Java Enterprise开发中使用它? _ 答案将是“依赖注入框架”。好了,使用依赖注入框架时我们有什么优势?用setter值和/或构造函数参数描述类的想法对我来说似乎很奇怪。为什么这样 因为我们可以更改属性而无需重新编译项目?这就是我们所获得的一切吗? 那么,我们应该用什么对象来描述?所有对象还是只有几个?

  • 主要内容:什么是依赖注入,value,factory,provider,constant,实例,AngularJS 实例 - factory,AngularJS 实例 - provider什么是依赖注入 wiki 上的解释是:依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分。 该模式分离了客户端依赖本身行为的创建,这使得程序设计变得松耦