zoukankan      html  css  js  c++  java
  • Guice学习(一)

    Guice学习(一)

    Guice是Google开发的一个轻量级依赖注入框架(IOC)。Guice非常小而且快,功能类似与Spring,但效率上网上文档显示是它的100倍,而且还提供对Servlet,AOP,Struts等框架的支持;这里是简单代码实现,首先要下载Guice包,http://code.google.com/p/google-guice/这里可以下载;程序结构如下

    这里导入了guice包与inject包,最简单的实现;下面是相关代码:

    UserDao实现

    package com.wf.dao;
     
    public class UserDao {
     
        public boolean saveUser(){
            System.out.println("user have save");
            return true;
        }
    }

    UserService实现

    package com.wf.services;
     
    import javax.inject.Inject;
     
    import com.wf.dao.UserDao;
     
    public class UserService {
     
        private UserDao userDao;
     
        @Inject
        public void setUser(UserDao userDao) {
            this.userDao = userDao;
        }
         
        public boolean saveUser(){
            boolean result = userDao.saveUser();
            System.out.println(result);
            return result;
        }
    }

      下面是相当与Spring中xml的一个类MyModule

    package com.wf.util;
     
    import com.google.inject.Binder;
    import com.google.inject.Module;
    import com.google.inject.Scopes;
    import com.wf.services.UserService;
     
    public class MyModule implements Module {
     
        @Override
        public void configure(Binder binder) {
            binder.bind(UserService.class).in(Scopes.SINGLETON);
        }
     
    }

      这三个类创建完毕后就可以测试了,下面是单元测试:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    package com.wf.test;
     
    import com.google.inject.Guice;
    import com.google.inject.Injector;
    import com.google.inject.Module;
    import com.wf.services.UserService;
    import com.wf.util.MyModule;
     
    import junit.framework.TestCase;
     
    public class Test extends TestCase {
     
        private UserService userService;
        protected void setUp() throws Exception {
            userService = new UserService();
        }
     
        public void testUserService(){
            Module module = new MyModule();
            Injector in = Guice.createInjector(module);
            in.injectMembers(userService);
            assertTrue(userService.saveUser());
        }
    }

      以上是注入的简单实现,Guice还有与其它框架的结合使用,可能现在主流还是Spring,不过这个应该也会渐渐被大家注意;感谢Google

  • 相关阅读:
    在ubuntu下安装phpmyadmin 出现404错误
    Jquery插件收藏
    PHP 时区设置
    Jquery动态进行图片缩略
    CSS设置图片垂直居中的方法
    解决CI框架的Disallowed Key Characters错误提示
    @Component默认是单例还是多例?
    ehcache的heap、off-heap、desk浅谈
    nginx负载均衡分配策略有哪些?
    HashSet的实现原理,简单易懂
  • 原文地址:https://www.cnblogs.com/exmyth/p/4544490.html
Copyright © 2011-2022 走看看