spring-boot学习 (Groovy与Spring Boot Cli)
时间:2019-07-04
本文章向大家介绍spring-boot学习 (Groovy与Spring Boot Cli),主要包括spring-boot学习 (Groovy与Spring Boot Cli)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、使用idea创建一个spring-boot项目,选择groovy语言
二、编写相应代码
1、创建实例类
package com.zhi.example class Man { Long id String name String phone Man(Long id, String name, String phone) { this.id = id this.name = name this.phone = phone } }
2、创建service
package com.zhi.example import org.springframework.stereotype.Service @Service("manService") class ManService { Man getInfoByName(String name) { return new Man(100,name,"10000") } }
3、创建controller
package com.zhi.example import org.springframework.beans.factory.annotation.Autowired import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.RestController @RestController class ManController { @Autowired private ManService manService; @GetMapping("/ok") String home() { Man man = manService.getInfoByName("tom") return "<h1>hello " + man.name + "</h1>" } }
4、运行ExampleApplication.groovy
package com.zhi.example import org.springframework.boot.SpringApplication import org.springframework.boot.autoconfigure.SpringBootApplication @SpringBootApplication class ExampleApplication { static void main(String[] args) { SpringApplication.run(ExampleApplication, args) } }
打开浏览器,访问:http://localhost:8080/ok
三、代码结构图
四、过程中遇到的问题
1、启动ExampleApplication.groovy报错,“找不到或无法加载主类 com.zhi.example.ExampleApplication"
原因:这种方式是按照Java+SpringBoot启动方式,java环境下运行一个.java文件,其实运行的是对应编译后的.class字节码文件,IDEA可以默认将.java编译成.class。编译后的.class文件在当前目录的target文件夹下。
Groovy是用于Java虚拟机的一种敏捷的动态语言,它最终也是编译成.class字节码文件运行的,但IDEA默认是不会将.groovy文件进行编译。所以我们第一次启动会出现。找不到或无法加载到主类的异常。Source roots (or source folders) 指定一个文件夹,手动告诉
IDEA,这个文件夹及其子文件夹中包含的源代码,可以编译为构建过程的一部分。然后可以到target文件夹下check是否有对应的.class文件。之后就可以成功启动SpringBoot+groovy。
原文地址:https://www.cnblogs.com/lpob/p/11135419.html
- 大数据查询——HBase读写设计与实践
- 基于Logstash的自动化运维系统实现
- 简谈RGW的index shard计算
- Blackpearl 的 Impersonate
- SparkMLLib中基于DataFrame的TF-IDF
- 运用Python实现WordPress网站大规模自动化发布文章
- 基于java的中文分词工具ANSJ
- 基于DF的Tokenizer分词
- 基于pyenv和virtualenv搭建python多版本虚拟环境
- 基于DataFrame的StopWordsRemover处理
- 案例:Spark基于用户的协同过滤算法
- 请别再问我Spark的MLlib和ML库的区别
- Spark的Ml pipeline
- EasyUI 创建 CRUD 应用
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- B. Ternary String(贪心)
- codeforces 940B(贪心)
- codeforces 429A(dfs)
- codeforces 1182B (DFS)
- codeforces 509B(构造,思维)
- codeforces 1257C(map)
- codeforces 977D(DFS)
- codeforces 580C(dfs)
- codeforces 1155B(博弈)
- XXXXX codeforces1364A(数学)
- JAVA入门学习十一
- codeforces 1282B(dp)
- 超级书架2(dfs)
- 听说,你的Loki还是单体?(下篇)
- codeforces 1373C (数学)