gpt4 book ai didi

java - 我应该如何在 Spring MVC 中创建 Groovy Controller

转载 作者:行者123 更新时间:2023-11-29 07:53:24 25 4
gpt4 key购买 nike

我看过this问题,我无法在我的 Spring MVC 项目中使用 Groovy。我应该把它放在哪里,完整路径应该是什么?请原谅我的基本问题,但我必须开始在 Spring MVC 中使用 Groovy。 Groovy 在 Spring 4.0 Snapshot 中可用,根据官方网站,最终版本应该会在 12 月上线。但是现在,建议使用 4.0 版吗? (它内置了对 Groovy 的支持)

引用代码:

    <beans .........
...
...
<bean class="full.qualified.name.of.ProxyAwareAnnotationMethodHandlerAdapter" />
...
...
<lang:groovy script-source="classpath:com/example/mysample.groovy refresh-check-delay="1000" />
</beans>

Java 类如下:

//ProxyAwareAnnotationMethodHandlerAdapter.java

package name.assafberg.spring;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.aop.TargetSource;
import org.springframework.aop.framework.Advised;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter;

/**
* Add proxy awareness to <code>AnnotationMethodHandlerAdapter</code>.
*
* @author assaf
*/
public class ProxyAwareAnnotationMethodHandlerAdapter extends AnnotationMethodHandlerAdapter {

/**
* @param request
* @param response
* @param handler
* @return
* @throws Exception
* @see org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter#handle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object)
*/
@Override
public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
handler = unwrapHandler(handler);

return super.handle(request, response, handler);
}

/**
* @param handler
* @return
* @see org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter#supports(java.lang.Object)
*/
@Override
public boolean supports(Object handler) {
handler = unwrapHandler(handler);

return super.supports(handler);
}

/**
* Attempt to unwrap the given handler in case it is an AOP proxy
*
* @param handler
* @return Object
*/
private Object unwrapHandler(Object handler) {
if (handler instanceof Advised) {
try {
TargetSource targetSource = ((Advised) handler).getTargetSource();
return targetSource.getTarget();

} catch (Exception x) {
throw new RuntimeException(x);
}

} else {
return handler;
}
}

}

编辑

无需处理上述文件。我唯一要做的就是处理 Groovy 的版本。从命令行确保 Groovy 的版本与类路径添加的版本相同。它奏效了。几乎不需要任何配置。刚刚创建了一个 .groovy 类而不是类似 Java 的类(感谢 +kunal 的启发。)

@Controller
class TestController {
@Autowired
@RequestMapping(value = "/welcome", method = RequestMethod.GET)
String People() {

return "people"
}

}

最佳答案

我问过 question然后当我想出一种创建 Groovy Controller 的方法时。

Groovy Controller 在一个已经投入生产超过一年的真实应用程序中对我来说表现出色。为了帮助人们在 Spring MVC 项目中看到 groovy 的值(value),我 fork 了 Heroku 的示例 java 应用程序并在 groovy 中重写了 Controller 。请在此处检查项目:

https://github.com/kdabir/groovy-springmvc-sample

此外,查看历史记录以了解如何在现有 Java 项目中引入 groovy 对您来说也很有趣。尽管从那时起我就没有接触过该项目,但它应该能让您对如何开始有一个清晰的认识。

编辑:

澄清一下,您只需将 .java 文件转换为 .groovy,它应该可以工作(只要它是有效的 groovy 语法)。

关于java - 我应该如何在 Spring MVC 中创建 Groovy Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19559284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com