匿名函数托管器 spring-boot-func-starter
spring-boot-func-starter
spring-boot-func-starter 介绍
项目地址: https://gitee.com/yiur/spring-boot-func-starter
基于SpringBoot的匿名函数托管器,在springboot中可以将接口的方法进行各种操作
平时的java开发中继承接口要将接口的方法全实现,而func匿名函数托管不需要进行全部
实现可以用@FuncLambda进行单独实现,没有进行匿名实现的接口方法不能进行调用,
func匿名函数还可以动态实现接口方法,配合代码达到更多操作,此外还有函数回调的
功能,在web开发中使用func匿名函数的对象是默认调用回调方法的,你也可以通过继承
Callback接口编写自己想要的(then, error)回调方法
error目前不兼容springboot的热部署
@FuncConfiguration匿名配置
@FuncLambda匿名函数配置
注解模式开发
项目搭建
定义接口,此接口的方法由匿名函数代理
public interface WebInitOutInfo {
String out(String message, String... args);
}
@FuncConfiguration匿名函数的总配置@FuncLambda匿名函数classFile代理的接口funcCallback回调函数callbackClass绑定的回调函数类
@FuncConfiguration
public class WebFuncLinkConfig {
@FuncLambda(classFile = WebInitOutInfo.class,
funcCallback = @FuncCallback(callbackClass = BlogCallback.class))
public String out(@FuncParameter("message") String message, @FuncParameter("args") String... args) {
return FuncString.format(message, args);
}
}
回调函数实现Callback接口即可
public class BlogCallback implements Callback {
@Override
public Object then(Object o) {
return FuncString.format("then blogCallBack:value(?)", o);
}
@Override
public Object error(Exception e) {
return ((InvocationTargetException)e).getTargetException().getMessage();
}
}
启动类开启匿名函数自动装配 @EnableFuncLambda
@EnableWebMvc
@EnableFuncLambda
@SpringBootApplication
public class WebBlogApplication {
public static void main(String[] args) {
SpringApplication.run(WebBlogApplication.class, args);
}
}
配置web进行测试,编写controller
@Controller
public class BlogController {
@Autowired
public WebInitOutInfo webInitOutInfo;
@ResponseBody
@RequestMapping("/replace")
public String value(String message, String... args) {
return webInitOutInfo.out(message, args);
}
}
测试成功回调[http://localhost:8888/replace?message=value ? ?&args=12, hello func](http://localhost:8888/replace?message=value ? ?&args=12, hello func)

测试失败回调[http://localhost:8888/replace?message=value ???&args=12,%20hello%20func](http://localhost:8888/replace?message=value ? ??&args=12, hello func)

匿名函数托管器 spring-boot-func-starter的更多相关文章
- Spring Boot自定义starter必知必会条件
前言 在目前的Spring Boot框架中,不管是Spring Boot官方还是非官方,都提供了非常多的starter系列组件,助力开发者在企业应用中的开发,提升研发人员的工作效率,Spring Bo ...
- spring boot自定义starter
1.spring boot 项目中自定义jar包 2.项目目录 3.src/main/java 下面写自己的方法,重点是 resources 下面的文件,在resources下面新建文件夹名字为 ME ...
- Spring Boot 自定义 starter
一.简介 SpringBoot 最强大的功能就是把我们常用的场景抽取成了一个个starter(场景启动器),我们通过引入springboot 为我提供的这些场景启动器,我们再进行少量的配置就能使用相应 ...
- Spring boot 自定义starter
以下配置来自尚硅谷.. 常用如何配置 @Configuration //指定这个类是一个配置类 @ConditionalOnXXX //在指定条件成立的情况下自动配置类生效 @AutoConfigur ...
- Spring Boot中Starter是什么
比如我们要在Spring Boot中引入Web MVC的支持时,我们通常会引入这个模块spring-boot-starter-web,而这个模块如果解压包出来会发现里面什么都没有,只定义了一些POM依 ...
- 【串线篇】spring boot自定义starter
starter: 一.这个场景需要使用到的依赖是什么? 二.如何编写自动配置 启动器只用来做依赖导入:(启动器模块是一个空 JAR 文件,仅提供辅助性依赖管理,这些依赖可能用于自动装配或者其他类库) ...
- Spring Boot 各Starter介绍
原文链接:https://blog.csdn.net/u014430366/article/details/53648139 Spring-Boot-Starters 最通俗的理解- jar 包,引用 ...
- 手把手教你实现自定义Spring Boot的 Starter
引言 上篇文章<天天用SpringBoot,它的自动装配原理却说不出来>我们有说springBoot的自动装配怎么实现的(建议最好先看下篇文章,因为前后有关系),这篇文章的话我们就自己来实 ...
- Spring Boot 自定义Starter 可能引发的问题(Error)
如果你的项目出现: Consider defining a bean of type 'com.wy.helloworld_spring_boot_starter.PersonService' in ...
随机推荐
- UML类图及其JAVA的代码实现
推荐 : https://my.oschina.net/u/3635618/blog/3165129 http://www.uml.org.cn/oobject/201104212.asp
- Linux系列(36) - yum命令安装(3)
yum常用命令 查询 yum list:查询所有可用软件包列表 yum search 关键字:搜索服务器上所有和关键字相关的包 安装 yum -y install 包名 选项: -install 安装 ...
- 发送curl请求的函数
//发送curl请求的函数function curl_request($url, $post = false, $data=array(), $https = false){ //使用curl_ini ...
- P7276-送给好友的礼物【dp】
正题 题目链接:https://www.luogu.com.cn/problem/P7276?contestId=39577 题目大意 \(n\)个点的一棵树,\(k\)个关键点,两个人从根出发分别走 ...
- YbtOJ#791-子集最值【三维偏序】
正题 题目链接:http://www.ybtoj.com.cn/contest/123/problem/1 题目大意 给出\(3\)个长度为\(n\)的排列\(A,B,C\).然后一个下标集合\(S\ ...
- LINUX系统入侵排查
当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措施,为 ...
- MyBatis的缓存玩法
重要概念 SqlSession:代表和数据库的一次会话,提供了操作数据库的方法. MappedStatement:代表要发往数据执行的命令,可以理解为SQL的抽象表示. Executor:和数据库交互 ...
- System.Drawing Linux Centos7 The type initializer for 'Gdip' threw an exception
System.Drawing 在linux使用时提示异常 The type initializer for 'Gdip' threw an exception 解决方案: yum install au ...
- 2020.5.4-ICPC Pacific Northwest Regional Contest 2019
A. Radio Prize All boring tree-shaped lands are alike, while all exciting tree-shaped lands are exci ...
- 内网渗透DC-3靶场通关
个人博客:点我 DC系列共9个靶场,本次来试玩一下DC-3,只有1个flag,下载地址. 下载下来后是 .ova 格式,建议使用vitualbox进行搭建,vmware可能存在兼容性问题.靶场推荐使用 ...