我有一个Spring/Hibernate webapp,它有一些在内存中的HSQL数据库上运行的集成测试.由于hbm2ddl = create,Hibernate使用这个空白数据库并创建我的所有测试表和约束.但是,我有一个新的bean,它在afterPropertiesSet()方法期间检查数据库中的特定配置值,因此当初始化此bean时,数据库中需要存在这样的行.
有没有什么好方法可以设置相当于Rail的测试夹具的Java/Spring/Hibernate?我试图找到一种方法告诉Hibernate"无论何时创建此表,然后立即插入这些行".我找不到可以添加的回调或钩子,但也许还有另一种方式.
我试图解密由另一个使用BouncyCastle库for Java的程序加密的数字.
在Java中,我可以像这样设置密钥: key = Hex.decode("5F3B603AFCE22359");
我试图弄清楚如何在Ruby中表示同样的步骤.
我正在使用Solr驱动的搜索我的webapp,我认为最好使用DataImportHandler来处理通过数据库与应用程序的同步.我喜欢看场的优雅last_updated_date.好东西.但是,我不知道如何使用这种方法处理删除文档.我看到它的方式,我有两个选择.我可以在删除文档时从客户端向Solr发送显式消息,或者我可以添加"已删除"标志并将对象保留在数据库中,以便Solr注意到文档已更改并且现在已"删除" ".我可以添加一个查询过滤器来忽略带有已删除标志的结果,但是在Lucene索引中包含所有已删除的文档似乎效率低下.其他人做什么?
假设我有一些像这样的HTML:
<img id="picture" src="http://www.domain1.com/img.png"/>
当浏览器访问此domain1.com时,它会重定向到另一个URL,例如" http://www.domain2.com/img2.png ".也许该URL重定向到其他域,比如" http://www.domain3.com/real_image.png ".
有没有办法使用JavaScript来确定最终图像的URL(domain3.com)?document.getElementById("picture").src给我原始的URL(domain1.com).
使用以下代码,我可以上传到谷歌云存储中的公共可写桶.(allUsers有写权限).但是,如果存储桶不可公开写入,那么我会收到401未经授权的错误.(我不希望桶是公开可写的).
var file = $scope.myFile;
var fileData = file;
var boundary = '-------314159265358979323846';
var delimiter = "\r\n--" + boundary + "\r\n";
var close_delim = "\r\n--" + boundary + "--";
var reader = new FileReader();
reader.readAsBinaryString(fileData);
reader.onload = function(e) {
var contentType = fileData.type || 'application/octet-stream';
var metadata = {
'name': 'objectName', //'lol' + fileData.name,
'mimeType': contentType
};
var base64Data = btoa(reader.result);
var multipartRequestBody =
delimiter +
'Content-Type: application/json\r\n\r\n' +
JSON.stringify(metadata) +
delimiter +
'Content-Type: ' + contentType + '\r\n' + …Run Code Online (Sandbox Code Playgroud) 我有Hibernate域对象,如下所示:
class Player {
List<Item> inventory;
}
class Item {
List<Enchantment> enchantments;
}
class Enchantment {
boolean isSuperiorEnchantment;
}
Run Code Online (Sandbox Code Playgroud)
我需要构建一个HQL查询,该查询返回给我一个列表,其中包含至少有一个带有附魔isSuperiorEnchantment标记的项目的所有玩家.我无法为我的生活找到一种在HQL中表达这种方式的方法.
有任何想法吗?
我之前正在讨论状态机,并且有一个问题是它是否可能不会停止某些输入.这似乎是国家机器的一个重要且经常被提及的属性,但我不能为我的生活弄清楚该属性的名称是什么.有这样一个词吗?它是"可停止的","不是无限循环",还是其他什么?
我有一组具有复杂初始化方案的类.基本上,我从我需要的接口开始,然后进行一堆调用,最后得到一个实现该接口的对象.
为了处理这个问题,我创建了一个工厂类,它可以在给定接口的情况下生成最终对象.我把这个工厂变成了一个bean,在XML中我指定我的各种服务bean通过这个工厂对象实例化,并带有一个他们将实现的接口参数.
这很好用,我完全得到了我需要的豆子.不幸的是,我想从我的控制器类访问它们,这些类是通过组件扫描发现的.我在这里使用@Autowired,看起来Spring不知道这些是什么类型的对象,并且由于@Autowired按类型工作,我是SOL.
在这里使用@Resource(name ="beanName")可以很好地工作,但是对于某些bean使用@Resource而对其他bean使用@Autowired似乎很奇怪.
有没有办法让Spring知道工厂将为每个bean创建哪个接口而不为每种类型设置不同的工厂方法?
顺便说一句,我正在使用Spring 2.5.6,否则我只是JavaConfig而忘记了它.
工厂类:
<T extends Client> T buildService(Class<T> clientClass) {
//Do lots of stuff with client class and return an object of clientClass.
}
Run Code Online (Sandbox Code Playgroud)
应用上下文:
<bean id="serviceFactoryBean" class="com.captainAwesomePants.FancyFactory" />
<bean id="userService" factory-bean="serviceFactoryBean" factory-method="buildService">
<constructor-arg value="com.captain.services.UserServiceInterface" />
</bean>
<bean id="scoreService" factory-bean="serviceFactoryBean" factory-method="buildService">
<constructor-arg value="com.captain.services.ScoreServiceInterface" />
</bean>
Run Code Online (Sandbox Code Playgroud)
我的控制器:
public class HomepageController {
//This doesn't work
@Autowired @Qualifier("userService") UserServiceInterface userService;
//This does
@Resource(name="scoreService") ScoreServiceInterface scoreService;
}
Run Code Online (Sandbox Code Playgroud) 前几天我遇到了一个问题,其中一个@Valid注释被意外地从控制器类中删除了.不幸的是,它没有破坏我们的任何测试.我们的单元测试都没有实际运行Spring AnnotationMethodHandlerAdapter路径.我们直接测试我们的控制器类.
如果我的@MVC注释错误,我该如何编写一个正确失败的单元或集成测试?有没有办法我可以让Spring找到并使用MockHttpServlet查找和运用相关的控制器?
我有一个大约5台服务器的车队.我想在每台机器上运行相同的Spring/Tomcat应用程序.
我还需要每十分钟执行一次特定任务.它应该只在其中一台机器上运行.我需要某种选举协议或其他类似的解决方案.
Spring或Quartz是否有任何内置的分布式cron解决方案,或者我是否需要自己实现?