小编Dan*_*ega的帖子

杀死通过运行任务创建的进程

我正在启动一个任务,它运行良好,但它是一个在当前shell中保持运行的任务.无论如何,当你完成后,还是要从编辑器中删除这个任务吗?

visual-studio-code vscode-tasks

12
推荐指数
2
解决办法
2万
查看次数

Groovy中的元对象协议(MOP)

我是Groovy编程语言的新手,我正在努力完全理解它的动态特性和功能.我所知道的是,在Groovy中以最基本的形式创建的每个类都看起来像这样(实现GroovyObject并扩展java Object).

public class Foo implements groovy.lang.GroovyObject extends java.lang.Object { }
Run Code Online (Sandbox Code Playgroud)

Groovy对象还包含一个扩展MetaObjectProtocolMetaClass.正是这个类层次结构提供了一些Groovy的动态功能.这包括内省自身(getProperties,getMethods)或拦截方法(invokeMethod,missingMethod)的能力.

我也了解Groovy中可用的不同类型的元编程.这些使您能够在运行时或编译时添加或覆盖功能.

  • 运行
    • 分类
    • Expando/MetaClass/ExpandoMetaClass
  • 编译时间
    • AST转换
    • 扩展模块

现在我们可以解决这个问题.当某人或某本书引用Groovy中的"Metaobject协议"时,我们会讨论特定类或事物集合.我很难把握一些没有定义或一成不变的东西.我的一本书将其定义为

协议是规则和格式的集合.元对象协议(MOP)是Groovy运行时系统如何处理方法调用请求以及如何控制中间层的规则的集合.协议的"格式"由各自的API定义,

我还有Venkat的Programming Groovy 2书,其中有一个定义了这个方法查找过程的图表.所以我猜这是我们如何请求方法的规则(至少是POGO,我理解POJO是不同的).

在此输入图像描述

无论如何我认为我走的是正确的道路,但我觉得我仍然缺少那个"啊哈哈"的时刻.任何人都可以填写我所缺少的内容吗?或者至少告诉我这里的ramblings有点意义:)谢谢!!

groovy metaobject

7
推荐指数
1
解决办法
2357
查看次数

Spring Boot devtools IntelliJ

我正在使用Spring Boot 1.3.0.M5,我正在尝试利用devtools.这允许您在开发过程中对应用程序进行更改,并且引导将重新加载您的应用程序.我在使用Java和Maven的STS中看到了这个演示工作.

我试图在IntelliJ 14.1中使用Groovy&Gradle,我遇到了一些问题.首先是我的Gradle Build依赖项.

dependencies {
    compile("org.springframework.boot:spring-boot-devtools")
    compile("org.springframework.boot:spring-boot-starter-web")
    compile("org.codehaus.groovy:groovy")
    testCompile("org.springframework.boot:spring-boot-starter-test") 
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个带有"/"映射的控制器

package demo

import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController

@RestController
class HomeController {

    @RequestMapping("/")
    public String home(){
        "Hello, SpringOne 2GX!"
    }

}
Run Code Online (Sandbox Code Playgroud)

我能够运行该应用程序并访问http:// localhost:8080并看到字符串打印到屏幕上.如果我对文件进行了更改,则没有任何反应,因为IntelliJ不会在更改时进行编译.如果你去Build> Make Project虽然我可以在控制台重新加载中看到Spring Boot.所以这似乎工作,但如果我回到根URL我得到以下错误,这基本上是你没有控制器就会看到的.

白标错误页面

此应用程序没有/ error的显式映射,因此您将此视为回退.

星期四9月17日10:43:25 EDT 2015出现意外错误(type = Not Found,status = 404).没有可用的消息

任何人都知道为什么重装不能正常工作?

java groovy spring gradle spring-boot

7
推荐指数
1
解决办法
3245
查看次数

Spring 基础拦截器:获取控制器和方法名称

我正在尝试创建一个拦截器,使当前控制器名称和操作(方法)名称可用于我的视图。这似乎在大多数时候都很有效。

public class BaseInterceptor extends HandlerInterceptorAdapter {

    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        String controllerName = "";
        String actionName = "";

        if( handler instanceof HandlerMethod ) {
            // there are cases where this handler isn't an instance of HandlerMethod, so the cast fails.
            HandlerMethod handlerMethod = (HandlerMethod) handler;
            controllerName = handlerMethod.getBean().getClass().getSimpleName().replace("Controller", "");
            actionName = handlerMethod.getMethod().getName();
        }

        modelAndView.addObject("controllerName", controllerName );
        modelAndView.addObject("actionName", actionName );
    }

}
Run Code Online (Sandbox Code Playgroud)

唯一不起作用的是当我使用 Spring Security 登录时。发生这种情况时,我会得到一个代理包装器作为控制器名称。有什么办法可以获取实际的控制器名称吗?

帖子$$EnhancerBySpringCGLIB$$3ef51261

java spring spring-mvc spring-boot

5
推荐指数
2
解决办法
5969
查看次数

从今天开始计算Groovy的年龄

试图找出某人基于他们的日期有多大.以下代码为我们提供了天数

def now = new Date()
def dob = new Date('08/21/1982')

println now - dob
Run Code Online (Sandbox Code Playgroud)

我们可以除以365,但这并不完全准确.必须有一个简单的方法来做到这一点,但我似乎无法找到它.有任何想法吗?

groovy

3
推荐指数
1
解决办法
2877
查看次数

在GSP中呈现HTML

我在数据库表(博客文章)中有一些内容是可信内容,我想在屏幕上显示.此内容为HTML,并使用Prism.js进行语法突出显示的一些代码示例.由于gsp页面上的HTML econding,我需要使用raw方法按原样输出内容

${raw(post.content)}
Run Code Online (Sandbox Code Playgroud)

除了当我获得包含在我的代码示例的标记中的代码时,这非常有用.而不是将其显示为代码,而是输出原始的html而不是我想要的.我不知何故需要编码里面的文本,因为如果我不这样做,我最终得到的东西看起来像这样.

在此输入图像描述

我知道我可以在保存时进行编码,但我已经有数百个帖子,但情况并非如此.有任何想法吗?

grails gsp

2
推荐指数
1
解决办法
5226
查看次数