我们有一个扩展BasicDataSource的自定义数据源.我们已经重写了getConnection方法,该方法在其中执行了一些操作.当我们在测试之外运行webapp时,当我们从控制器调用服务时,它将获取新连接并使用该连接直到服务完成.一切都很好.但是,在集成测试中,连接似乎在测试甚至调用控制器之前被抓取.流程如下
常规运行:调用控制器 - >控制器调用服务方法 - >连接被抓取 - >运行服务方法并返回控制器
集成测试:抓取连接 - >从测试调用控制器 - >控制器调用服务方法 - >运行服务方法并返回控制器
毋庸置疑,这给我们带来了问题,因为正确的连接对我们的应用非常重要.思考?
编辑:仍然遇到重大问题.我们已经达到了这样的程度,我们必须避免创建集成测试,或者进行一些手动连接切换(这会使测试的一半失败)
DataSource.groovy的
dataSource {
pooled = true
dialect="org.hibernate.dialect.OracleDialect"
properties {
maxActive = 50
maxIdle = 10
initialSize = 10
minEvictableIdleTimeMillis = 1800000
timeBetweenEvictionRunsMillis = 1800000
maxWait = 10000
testWhileIdle = true
numTestsPerEvictionRun = 3
testOnBorrow = true
}
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider'
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Jquery UI 1.8.10中的JQuery Themeroller主题.我想用themeroller改变我的主题.当前的themeroller版本适用于jquery UI 1.9.当我下载一个新主题并实现CSS /图像时,我手风琴菜单上的标题大小增加了一倍.箭头图标在一行上,标题文本被包装到下一行.
有没有办法访问以前版本的jquery UI Themeroller?或者,是否有其他人找到的小修复?我最担心的是,我错过了一个不会被回归测试捕获的css线.
我目前在我的项目中设置了hibernate.它适用于大多数事情.但是今天我需要从表中返回几十万行查询.它是表中总行数的约2/3s.问题是查询需要大约7分钟.使用直接JDBC并执行我假设的相同查询,它需要<20秒.因此,我认为我做的事情完全错了.我将在下面列出一些代码.
DetachedCriteria criteria =DetachedCriteria.forlass(MyObject.class);
criteria.add(Restrictions.eq("booleanFlag", false));
List<MyObject> list = getHibernateTemplate().findByCriteria(criteria);
Run Code Online (Sandbox Code Playgroud)
关于它为什么会变慢和/或我可以做些什么来改变它的想法?
我正在尝试创建一个自定义角度组件,该组件基于 templateUrl 函数动态加载模板。我目前得到一个templateUrl未使用显式注释并且无法在严格模式下调用的错误。通常我知道当注入的服务没有得到正确注释时会出现这个错误(https://docs.angularjs.org/error/$injector/strictdi)。但是,我缺少这如何适用于templateUrl.
我正在使用 Angular 1.5。
确切的错误信息是 -
angular.js:13550 Error: [$injector:strictdi] templateUrl is not using explicit annotation and cannot be invoked in strict mode
组件代码片段:
angular.module('hive.triGrid')
.controller('TriGridCellController', ['$element', '$attrs', function ($element, $attrs) {
var $ctrl = this;
}])
.component('triGridCell', {
controller: 'TriGridCellController',
templateUrl: function($element, $attrs)
{
var type = $attrs.cellType;
if(type.toUpperCase() == "ICON")
{
return "components/grid/cellTemplates/iconCell.tpl.html";
}
else if(type.toUpperCase() == "CUSTOM")
{
return $attrs.cellTemplateUrl;
}
else
{
return "components/grid/cellTemplates/textCell.tpl.html";
}
},
//template:"<ng-include src='$ctrl.getTemplateUrl(z)'/>",
bindings: …Run Code Online (Sandbox Code Playgroud) 我目前有一个tomcat webapp,需要在JVM关闭时删除文件.我创建了一个自定义ContextLoaderListener来处理contextDestroyed事件.在这里我在适当的文件上调用deleteOnExit.但是,自从jdk 1.6.0_14以来我无法删除OnExit.谷歌搜索表明有一些预期的变化,但我没有看到解决这个问题.有人有主意吗?
下面的代码不起作用.
for(File f : myFileList)
try{
f.deleteOnExit()
} finally {
f.delete()
}
Run Code Online (Sandbox Code Playgroud) 我有一个工具栏过滤器设置,适用于我的JQGrid.我们最近要求只允许整数进入该字段.我更改了相应列的colModel,以便在搜索发生之前验证客户端.在对javascript进行更改后,行为没有改变.无论输入如何,验证似乎都不会发生在客户端,这让我相信我对搜索规则有误解.代码如下
以前
colModel:[ ...,
{name:'version', search:true, stype:'text'}
,...,]
Run Code Online (Sandbox Code Playgroud)
变更后
colModel:[ ...,
{name:'version', search:true, stype:'text',searchrules:{required:true, integer:true}}
,...,]
Run Code Online (Sandbox Code Playgroud)
搜索规则不适用于工具栏过滤吗?文档表明他们会,除非我在某处错过了一条线.
谢谢你的期待!
我有一个jqgrid并在此网格上使用表单编辑.我遇到的问题是我标记为可编辑的列不是正确的宽度.我无法在colModel或表单选项中找到API中的相应选项.例如,我有一个文本字段,应该是~35个字符宽,但它只显示为〜15.如果需要代码示例,请告诉我.
java ×2
jqgrid ×2
jquery ×2
angularjs ×1
connection ×1
css ×1
datasource ×1
filtering ×1
grails ×1
hibernate ×1
javascript ×1
jvm ×1
oracle ×1
spring ×1
themeroller ×1