一、使用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。

spring-boot学习 (Groovy与Spring Boot Cli)的更多相关文章

  1. Spring Boot 学习1-创建Spring Boot应用

    如果使用Maven, 确保先安装好Maven再继续. 创建POM文件 在这里有两种方式: 继承Spring Boot parent的pom. 不继承. 继承Spring Boot pom 1 2 3 ...

  2. 【Spring Boot学习之六】Spring Boot整合定时任务&异步调用

    环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2一.定时任务1.启动类添加注解@EnableScheduling 用于开启定时任务 package com.wjy; i ...

  3. 【Spring Boot学习之四】Spring Boot事务管理

    环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 一.springboot整合事务事务分类:编程事务.声明事务(XML.注解),推荐使用注解方式,springboot默 ...

  4. 【Spring Boot学习之三】Spring Boot整合数据源

    环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 一.Spring Boot整合Spring JDBC 1.pom.xml <project xmlns=&quo ...

  5. 【Spring Boot学习之一】Spring Boot简介

    环境 Java1.8 Spring Boot 1.3.2 一.Spring Boot特点1.使用java运行项目,内置tomcat,无需外部容器:2.减少XML配置,使用properties文件和注解 ...

  6. spring揭密学习笔记(1) --spring的由来

    1.spring起源于在EJB暴露出各种严重问题的情况应运而生. Spring是于2003年兴起的一个轻量级的Java开发框架, Spring倡导一切从实际出发,以实用的态度来选择适合当前开发场景的解 ...

  7. Spring Boot 学习笔记 - 认识Spring Boot框架

    因各种原因,.NET前端工程师重新接触JAVA,真是向全栈的路上又迈出了无奈的一步. 下面正文: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初 ...

  8. Spring Boot学习——第一个Spring Boot程序

    依照下面的步骤创建项目: 点击 Next 项目介绍: Application.java中的主要代码: @SpringBootApplication public class ReaderApplica ...

  9. Spring boot 学习 四:spring boot 配置文件 application.yml

    一 关于端口: spring boot的默认端口是8080, 如果想更改的话,在配置文件中做如下配置.ServerProperties.class会去读取这个值. server: port: 另外一种 ...

  10. Spring Boot学习一之Spring Beans和依赖注入

    你可以自由地使用任何标准的Spring框架技术去定义beans和它们注入的依赖.简单起见,我们经常使用 @ComponentScan 注解搜索beans,并结合 @Autowired 构造器注入. 如 ...

随机推荐

  1. string和char*

    string转const char* string s = "hello furong."; const char *c = s.c_str(); string转char* str ...

  2. Array+DP leetcode-11.装更多的水

    11. Container With Most Water 题面 Given n non-negative integers a1, a2, ..., an , where each represen ...

  3. 前阿里P8架构师谈如何设计优秀的API

    随着大数据.公共平台等互联网技术的日益成熟,API接口的重要性日益凸显,从公司的角度来看,API可以算作是公司一笔巨大的资产,公共API可以捕获用户.为公司做出许多贡献.对于个人来说,只要你编程,你就 ...

  4. No valid host was found. There are not enough hosts available-----openstack建虚拟机直接报错

    目录 No valid host was found. There are not enough hosts available-----openstack建虚拟机直接报错 一.问题现象: 二.解决思 ...

  5. JavaFX WebView and WebEngine Tutorial教程

    JavaFX WebView JavaFX WebView is a mini browser that is called as an embedded browser in JavaFX appl ...

  6. Python基本语法变量

    Python的语法和其它编程语言的语法有所不同,编写Paython程序之前需要对语法有所了解,才能编写规范的Python程序.本篇介绍Python标识符的同时,也讨论了Python变量的声明和赋值.通 ...

  7. Python借助argv和input()制作命令行工具

    命令行执行.py文件并传递参数 代码示例如下,将参数解包 from sys import argv import requests import json import time script, us ...

  8. Java基础 线程的通信的三个方法/ 交替数数线程 / 生产者&消费者线程问题

    线程通讯笔记: /** 线程通信 三个方法: * wait(): 调用该方法 是该调用的方法的线程释放共享资源的锁,进入等待状态,直至被唤醒 * notify() : 可以唤醒队列中的第一个等待同一共 ...

  9. setuptools 版本太旧

    第二是 setuptools 版本太旧,所以出现以下问题Command "python setup.py egg_info" failed with error code 1 in ...

  10. HDU 6619 Horse 斜率优化dp

    http://acm.hdu.edu.cn/showproblem.php?pid=6619 #include<bits/stdc++.h> #define fi first #defin ...