zoukankan      html  css  js  c++  java
  • 使用Groovy进行依赖注入

    为什么选择Groovy?

    传统的依赖注入是XML,对我而言,可读性太差,太不美观,强烈地想换一个方式进行依赖注入,Groovy作为XML的替代方案,在Spring4之后被引入,是基于JVM的一门方言,具有较强的可读性,写更少的更易懂的脚本,完成同样的功能。

    基于Spring boot框架

    我选择了Spring boot框架作为MVC,看重了它的惯例大于配置,不用繁琐地配置。

    以下代码是伪代码,只是大概说明使用的方式

    Application.java

    @SpringBootApplication
    class Application {
      public static void main(String[] args) {
        Object[] sources = new Object[]{ Application.class, new ClassPathResource("application_context.groovy") };
        SpringApplication.run(sources, args);
      }
    }
    

    在Application启动的时候读入该脚本,解析出错会抛出异常。

    src/main/resources/application_context.groovy

    beans {
      userService(UserMockService) {
        parameter = "你能在这初始化参数"
      }
    }
    

    在groovy配置文件里能声明要注入的beans,可以配置初始化时的参数值,这里就是声明一个userService,它的实现是UserMockService

    UserController.java

    @Controller
    class UserController {
      @Autowired
      private UserService userService;
    
      public User getUserAction(Long userId) {
        return userService.findByUserId(userId);
      }
    }
    

    User.java

    class User {
      String name;
      public User(String name) {
        this.name = name;
      }
    }
    

    UserService.java

    interface UserService {
      User findByUserId(Long userId);
    }
    

    UserMockService.java

    class UserMockService implements UserService {
      private String parameter;
      
      public String getParameter() { return parameter; }
      public void setParameter(String parameter) {
        this.parameter = parameter;
      }
      public User findByUserId(Long userId) {
        return new User("mockUser");
      }
    }
    

    参考资料

    < fuck>XML< /fuck>

  • 相关阅读:
    北京东城区社保转出业务个人办理图解流程,需要的朋友可以参考
    微信自定义菜单代码实现
    那你就是不对称加密了
    数字签名和数字认证
    微信认证开发教程
    Eclipse配置Maven
    php随笔
    让SAE下的wordpress支持文件上传
    HTTP Header 详解
    浅谈JS DDoS攻击原理与防御
  • 原文地址:https://www.cnblogs.com/pier2/p/spring-ioc-groovy.html
Copyright © 2011-2022 走看看