Spring 扩展 spring-nc

GPL
Java 查看源码»
跨平台
2017-07-17
xiwa

spring-nc=spring no controller,一个不需要controller类的spring扩展,只需在对应的service接口上应用controller相关注解,便能提供如同controller一样直接访问对应接口实现类的service方法。

此扩展还同时兼容原有的controller写法,使用简单对service无侵入。

 使用步骤如下:

1.先定义service接口类:

package cn.hn.java.summer.springnctest.service;

import cn.hn.java.summer.springnc.annotation.RequestMapping;
import cn.hn.java.summer.springnc.annotation.RestController;

@RestController
@RequestMapping("/")
public interface IHello {

    @RequestMapping("/say")
    String say(String name);
}

注意:这里的RestController、RequestMapping注解用的是spring-nc包下的注解,需要用spring-nc包中代替spring原有的注解有:@Controller、@RestController、@RequestMapping、@PutMapping、@PostMapping、@PatchMapping、@GetMapping和@DeleteMapping,其它注解都是用原有的。

2.编写实现接口的service类:

package cn.hn.java.summer.springnctest.service;

import org.springframework.stereotype.Service;

@Service
public class HelloService implements IHello {

    public String say(String name) {
        return "hello "+name;
    }
}

3.启动程序时增加spring-nc调用:

package cn.hn.java.summer.springnctest;

import cn.hn.java.summer.springnc.AutoControllerApplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication(scanBasePackages = "cn.hn.java.summer.springnctest.service")
public class Application {

    public static void main(String[] args) {
        AutoControllerApplication.run(Application.class); //最前面添加spring-nc调用
        SpringApplication.run(Application.class, args);
    }
}

4.启动程序访问 localhost:8080/say?name=world

输出:hello world

很简单简捷有没有?再也不用去写一遍controller了~~~

的码云指数为
超过 的项目
加载中

评论(19)

K
KaiYuan_ZJ
煞笔
hzmahao
hzmahao
很感谢开发者的创意,这个假设在某些具体的及其简单的数据调用,完全无业务逻辑的倒是可以试试哈。
壹贰叁
壹贰叁
脱了裤子放屁可能就是这样吧,不过能弄出来还是不错的,开心就好
haoran_10
haoran_10
不错,有想法
MGL_TECH
MGL_TECH
呵呵,,,,,,,,,,,,赶紧删了吧,先搞清楚为什么要分三层 ,,,你这是越来越回归原始开放状态,直接JDBC一个类不得了 !!!!!!!!!
丶璀璨星辰2
丶璀璨星辰2
感觉不实用,我直接在service实现类上面打controller注解也行,干嘛要在接口上面打,而且分三层不是一定的,你要是自己开心,一层dao也行
一别丶经年
一别丶经年
反过来看,你这没啥意义啊,如果不要service,只留controller是不是跟你这个实现了相同效果?
小白小霸王
小白小霸王
是啊 感觉不实用啊
开源中国刘德华
开源中国刘德华
有什么意义呢?
随手关门
随手关门
给我的第一感觉就是在service类打上controller注解

暂无资讯

暂无问答

grails3.x 多数据源配置 及获取

grails3.x 多数据源配置 controller service 获取数据源

2015/07/25 17:36
58
0
Spring Boot启动后执行特定操作,然后自动停止

前言 我们原来使用 Spring Boot 一般都是在 web 工程中,执行顺序是启动内嵌 tomcat 容器 → 所有服务待命 → 等待请求的过来 → 处理请求,如此循环,当需要停止的话要在外部执行命令停止。...

2018/02/27 12:03
482
0
Spring容器启动后注入service到Servlet并自动执行

通常做法是定义一个Servlet,并在web.xml中配置Servlet的启动顺序的值在DispatcherServlet之后。但这样做的缺点是在Servlet中无法使用Spring的依赖注入功能,只能使用WebApplicationContext...

2014/10/18 18:00
4.7K
1
Spring Boot实战之基础回顾

本文作者: 吴伟祥 本文链接: https://wuweixiang.cn/2018/08/21/Spring-Boot实战之基础回顾/ 版权声明: 本博客所有文章除特别声明外均为原创,采用CC BY-NC-SA 4.0 许可协议。转载请在文章开...

2018/08/21 21:04
45
0
SpringBoot 整合 BeetlSQL

SpringBoot 整合 BeetlSQL 1. beetlsql介绍 BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应...

2018/12/13 16:31
47
0
Zookeeper系列一:Zookeeper基础命令操作

有些事不是努力就可以改变的,五十块的人民币设计的再好看,也没有一百块的招人喜欢。

2018/06/03 17:43
133
0
spring系列汇总

spring spring-基于可扩展Schema的特性自定义标签 springmvc-同一个访问资源,多种视图解析方式 spring cache 配置使用aspectj模式织入 基于注解的spring缓存,轻松无侵入解决cache问题 spri...

2018/12/10 12:25
43
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部