小编kuc*_*ram的帖子

Spring Boot + Spring-Loaded(IntelliJ,Gradle)

我想在我的Spring Boot项目中使用热插拔.不知怎的,我无法通过在我的IDE(IntelliJ)中运行它来使其工作,尽管文档涵盖了这个主题.我只需使用带有VM属性的main方法运行该类:

-javaagent:/path/to/jar/springloaded.jar -noverify
Run Code Online (Sandbox Code Playgroud)

我的问题是,我该如何使其发挥作用?:-)

进一步的问题是如何使用装有Gradle和IntelliJ的弹簧.我发现强制开发人员手动下载JAR,将其置于某处并使用JVM参数指向它是非常不方便的.有没有更好的方法(我应该配置自己的任务来完成工作并从我的IDE作为Gradle任务运行它)?

spring spring-boot spring-loaded

36
推荐指数
5
解决办法
3万
查看次数

使用Spring Boot和Spock进行集成测试

@IntegrationTest使用Spock 运行集成测试(例如)的最佳方法是什么?我想引导整个Spring Boot应用程序并执行一些HTTP调用来测试整个功能.

我可以使用JUnit(首先运行app然后执行测试):

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyServer.class)
@WebAppConfiguration
@IntegrationTest
class MyTest {
   RestTemplate template = new TestRestTemplate();

   @Test
   public void testDataRoutingWebSocketToHttp() {
      def a = template.getForEntity("http://localhost:8080", String.class)
      println a
   }
}
Run Code Online (Sandbox Code Playgroud)

但是使用Spock,应用程序无法启动:

@SpringApplicationConfiguration(classes = MyServer.class)
@WebAppConfiguration
@IntegrationTest
class MyTestSpec extends Specification {

   RestTemplate template = new TestRestTemplate();

   def "Do my test"() {
      setup:
      def a = template.getForEntity("http://localhost:8080", String.class)

      expect:
      println a
   }
}
Run Code Online (Sandbox Code Playgroud)

当然,对于Spock,我在Gradle构建文件中指定了正确的依赖项:

...
dependencies {
   testCompile 'org.spockframework:spock-core:0.7-groovy-2.0'
   testCompile 'org.spockframework:spock-spring:0.7-groovy-2.0'
}
...
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

java groovy gradle spock spring-boot

36
推荐指数
3
解决办法
3万
查看次数

Vue.js滚动到同一路线的页面顶部

我可以像这样设置滚动行为到Vue.js路由器:

const router = new Router({
    mode: 'history',
    routes: [
        {
            path: '/',
            name: 'index',
            component: Main
        },
        {
            path: '/some-path',
            name: 'some-path',
            component: SomePath
        }
    ],
    scrollBehavior() {
        return {x: 0, y: 0}
    }
})
Run Code Online (Sandbox Code Playgroud)

当您单击某个不是最新的页面的链接时,这非常有效.当我点击已经渲染的链接时,即在页脚中,没有任何反应.Vue Router假设没有状态转换.在这种情况下向上滚动的首选方法是什么?

vue.js vue-router

25
推荐指数
6
解决办法
3万
查看次数

google.maps.Marker zIndex不适用于两种图标类型 - 符号和字符串

当我使用不同的图标类型向Google地图添加更多标记时,例如:

...
var marker = new google.maps.Marker({
             position: markerLatLng,
             map: map,
             icon: "http://www.test.com/marker.png",
             zIndex: 10
         });
...
Run Code Online (Sandbox Code Playgroud)

...
var resultIcon = {
            path: google.maps.SymbolPath.CIRCLE,
            fillColor: "black",
            strokeColor: "black",
            strokeWeight: 1,
         };

var marker = new google.maps.Marker({
             position: markerLatLng,
             map: map,
             icon: resultIcon,
             zIndex: 5
         });
...
Run Code Online (Sandbox Code Playgroud)

比zIndex不起作用,符号标记出现在顶部.

我的代码错了,或者如何使zIndex工作?

google-maps-api-3

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

Vue.js使用不同的环境变量构建

我使用了Vue.js的官方Webpack模板.它针对不同的环境使用单独的配置.他们提供测试,开发和生产.但是,我需要另一个,因为我们有两个生产服务器(一个生产和一个临时).

为不同的生产环境提供不同配置的最佳做法是什么?我会想到类似的东西npm run build --URL:http://some-url.com --PORT:80 ....

欢迎任何建议!

webpack vue.js

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

Groovy/src中的Grails 2.x服务注入

我想在Groovy/src类中注入我的服务.normaln依赖注入不起作用:

...
def myService
...
Run Code Online (Sandbox Code Playgroud)

我能够使用它(它的工作原理):

def appCtx = ApplicationHolder.application.getMainContext()
def myService = appCtx.getBean("myService");
Run Code Online (Sandbox Code Playgroud)

但不推荐使用ApplicationHolder.有没有更好的解决方案?

谢谢你的任何建议

grails grails-2.0

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

Grails - 放置测试文件的位置以及如何加载它们

我想问一下grails中测试文件的最佳位置(即data.xml).是测试/文件夹吗?

如何轻松地在Integration测试中加载测试文件?

谢谢,马特奥

grails grails-2.0

12
推荐指数
1
解决办法
3189
查看次数

在Grails单元测试中注入服务

我知道您可以使用以下方法在单元测试方法中简单地注入服务:

defineBeans {
   someService(SomeService)
}
Run Code Online (Sandbox Code Playgroud)

但是当我需要在服务中注入服务时(该服务someService自称为另一个服务some2Service).当我使用上面的代码运行测试时,我会收到:

Message: Cannot invoke method someMethod() on null object
Run Code Online (Sandbox Code Playgroud)

是否可以在单元测试中将服务注入服务?

谢谢.;-)

grails unit-testing dependency-injection

10
推荐指数
1
解决办法
4341
查看次数

使用Spock进行Grails测试 - 选择哪种模拟框架?

我有更普遍的问题.在使用Spock时,我应该在Grails 2.x中使用哪种框架或实现进行模拟?

我知道大量的模拟风格:利用Groovy metaClass,Grails mockFor(),Groovy Mock(),Groovy闭包样式等等.每个都有自己的优点和缺点.但我不明白的是,某些模拟风格在某些我无法确定的场合起作用(即mockFor()适用于某些实现而不适用于其他实现).

目前我有两个类似的服务方法模拟实现.

这个工作:

@TestFor(MyController)
@Mock([MyDevice])
class MyControllerSpec extends ControllerSpec {

void "test st."() {
      def myService = mockFor(MyService)
      myService.demand.myMethod() { def st ->
         return "test"
      }
      controller.myService = myService.createMock()
}
}
Run Code Online (Sandbox Code Playgroud)

但是,此实现不起作用:

@TestFor(MyController)
@Mock([MyDevice])
class MyControllerSpec extends ControllerSpec {

void "test st."() {
      def yourService = mockFor(YourService)
      yourService.demand.yourMethod() { def st ->
         return "test"
      }
      controller.yourService = yourService.createMock()
}
}
Run Code Online (Sandbox Code Playgroud)

服务器实现和从控制器调用是非常相似的.那么在Grails中嘲笑的最佳做法是什么?或者Grails有什么好的模拟框架可以节省我的时间来弄清楚如何模拟?

谢谢你的建议!:-)

圣马特奥

testing grails spock grails-2.0

8
推荐指数
1
解决办法
5023
查看次数

Angularjs - 如何清除$ routeProvider的templateUrl缓存

我在我的应用程序中有一个非常基本的用例,我使用AngularJS(1.0.8)作为前端,Grails作为后端.在应用程序布局中,我有一个语言切换器,允许用户更改语言.切换语言时,会执行新的http请求来检索页面.Grails可以正确翻译所有与语言相关的内容(即标签).这仅适用于Chrome,FF等,但不适用于IE.IE只为主要请求呈现的布局呈现正确的语言.

我找到了问题.我已经定义了$routeProvider加载主要应用内容的位置.它默认是缓存的,因此IE不加载templateUrl,$routeProvider因为它从缓存中加载它们:

myApp.config(function ($routeProvider) {
        $routeProvider.
            when('/', {controller: 'MyCtrl', templateUrl: '/eshop/myConfig'})
});
Run Code Online (Sandbox Code Playgroud)

我没有得到的是为什么它适用于所有其他浏览器.

我发现了一些帖子如何清除缓存,但它们对我不起作用.我有什么解决方案吗?如果没有,我觉得$routeProvider我的用例完全没用.我找到的帖子:

angularjs

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