我有一个由Spring创建的bean.实际的类驻留在与Spring不同的JAR中.此bean作为构造函数参数传递路径.但是,我在检索文件句柄时遇到了困难.该文件位于WEB-INF/classes /中.我已经尝试过基于WEB-INF的相对路径,但显然这不起作用.
XML:
<bean id="configurationManager" class="package.ConfigurationManager"
scope="singleton">
<property name="configurationMapping">
<bean class="package.PropertiesFileConfigurationMapper">
<constructor-arg type="java.lang.String">
<value>/path/to/file</value>
</constructor-arg>
</bean>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
豆:
public class ConfigurationMapper {
public ConfigurationMapper(String resource) {
_map = new HashMap<String, String>();
String property = null;
BufferedReader reader = null;
try {
FileReader file = new FileReader(resourcePath);
reader = new BufferedReader(file);
while ((property = reader.readLine()) != null) {
if (property.matches("(.+)=(.+)")) {
String[] temp = property.split("(.+)=(.+)");
_map.put(temp[0], temp[1]);
}
}
} catch (Exception ex){
ex.printStackTrace();
} finally {
if (reader != …Run Code Online (Sandbox Code Playgroud) public class Node {
private Node nextNode;
@Override
public int hashCode() {
//How to implement this?
//Because you just have a attribute which is a reference.
//I think the attribute is almost useless, because if you use the HashCode of the attribute, you will finally fall into a useless loop.
//Thus, I think you should find a way to represent the HashCode of reference (instance) itself.
}
}
Run Code Online (Sandbox Code Playgroud)
从代码中的注释,我的问题实际上是如何唯一地标识引用本身,如C中的地址.
JPA规范给出了注释的以下说明@GeneratedValue(strategy=TABLE):
的
TABLE发电机类型值指示持久性提供者必须使用底层数据库表以确保唯一分配针对该实体的主键.
但是"使用底层数据库表"在实践中意味着什么呢?这是否意味着使用辅助表?或者通过扫描实体表来查找未使用的ID?或者是其他东西?
我的测试有问题.有一种算法用于一些奇特的程序.该算法从一个范围[-999,999; +999,999],将其视为表中的id号,并在数据库中执行一些随机操作.这意味着我需要多次调用该方法以确保随机数分布正确.
我想用TDD编写所有代码(只是为了更多地学习它).
问题是我不知道如何用TDD原理测试算法.
根据TDD,如果不首先编写测试,则不应运行代码.
我想到的解决方案之一是在主类中使用一个名为debug(text)的伪方法.此方法在生产代码中不执行任何操作.然而,我会使这个方法的子类重载,这次它会存储一些有趣的信息.以后可以通过测试使用此信息来确定函数是否正常工作.数据库连接将被模拟,不会执行任何操作.
另一种解决方案是创建一个模拟的数据库连接,该连接将存储稍后在测试中使用的有趣信息.然而,创建这样的连接将是如此巨大的工作,我认为不值得花时间.
稍后将进行集成测试以检查数据库是否正确更改.但集成测试不是TDD的一部分.
我是否进入了TDD失败且无用或难以使用的地方?
我在正在执行的服务器中有一个线程(线程a) object = ois.readObject();.当我从客户端拔出LAN线路时,该线程不会出现异常并继续从流中读取.
服务器上的另一个线程(线程b)每隔一秒尝试向客户端写一个字节,以检查连接是否仍然存在: checkingStream.writeObject(b);
当我拉这个线,我得到一个IOException从checkingStream.writeObject(b);.我想"线程b"导致"线程a"停止从流中读取并继续执行代码/抛出异常.
threadA.interrupt();不起作用.我该怎么办?
System.out.println(someArray);
Run Code Online (Sandbox Code Playgroud)
只给我一个地址,我假设它是存储值的地址。
System.out.println(Arrays.asList(someArray));
System.out.println(Arrays.toString(someArray));
Run Code Online (Sandbox Code Playgroud)
这两个都不能编译并说“找不到符号”,符号是:“变量数组”。
如何查看此数组中的值?
如果在Java中不推荐使用某种方法,那么将有另一种更好的方法来实现相同的功能,对吧?
Date date = new Date();
date.getHours()
Run Code Online (Sandbox Code Playgroud)
由于getHours()已被弃用,是什么让时间的最好方法只使用Date类?
我在.js文件中定义了一个全局var:
如果我的函数有一个与全局变量同名的参数,则该函数无法初始化全局变量:
var myvar;
function init(myvar){
myvar= myvar;
}
Run Code Online (Sandbox Code Playgroud)
但是如果我更改变量名称使全局变量和参数具有不同的名称,则该函数可以初始化全局变量:
var myvar2;
function init(myvar){
myvar2= myvar;
}
Run Code Online (Sandbox Code Playgroud)
(myvar2然后正确初始化).
为什么会这样?javascript不允许在不同范围内具有相同名称的两个变量,因此发生了变量阴影?
我认为js引擎能够以与java相同的方式区分方法范围和全局范围(尽管使用this关键字)
我有一个Decimal(19,5)大小的数据库列,我希望java中的BigDecimal存储值但是如果我写的话
BigDecimal(999999999999999.9999);
Run Code Online (Sandbox Code Playgroud)
该值四舍五入为1 + E15,我不希望这样,所以我怎样才能获得数字的完整精度.
我知道的一种方法是使用
BigDecimal("999999999999999.9999");
Run Code Online (Sandbox Code Playgroud)
我认为应该有更好的选择来指定精度.
我是cassandra的新手,现在我正在尝试制作一台制作服务器.在文档中我读到数据和commitlog应该在分离的驱动器上(顺便说一句,我使用hdd),我认为commitlog将增加到许多Gb的数据,我创建了2个硬盘(都是100Gb),首先是数据(sstables)在第二个提交日志.但现在在配置中我看到:
commitlog_total_space_in_mb: 4096,我认为这应该是'最大堆大小'.如果commitlog达到了这个限制,那么似乎memtables的大小增加,需要刷新到磁盘,并且memtables中包含的数据也会从commitlog中删除.
请告诉我,如果我是对的:commitlog就像堆的备份,不能增加到数百Gb?
而且我不需要为此创建100Gb硬盘,就足够4Gb分区(在另一个硬盘上,与存储数据(sstables)的地方不一样)?
java ×7
arrays ×1
cassandra ×1
datetime ×1
deprecated ×1
hashcode ×1
interrupt ×1
javascript ×1
jpa ×1
jquery ×1
primary-key ×1
reference ×1
scope ×1
spring ×1
tdd ×1
testing ×1
unit-testing ×1