我有兴趣构建一个供个人使用的小应用程序,它将使用JavaScript在客户端加密和解密信息.加密信息将存储在服务器上的数据库中,但不会存储在解密版本中.
它不一定非常安全,但我想使用当前不间断的算法.
理想情况下,我可以做类似的事情
var gibberish = encrypt(string, salt, key);
Run Code Online (Sandbox Code Playgroud)
生成编码的字符串,等等
var sensical = decrypt(gibberish, key);
Run Code Online (Sandbox Code Playgroud)
稍后解码.
到目前为止,我已经看到了这个:http: //bitwiseshiftleft.github.io/sjcl/
我应该看看其他任何图书馆?
我需要在文件中查找.我想忽略或排除生成的文件,如JAX-WS工件或目标文件夹中的类.如何告诉IDEA从查找中排除这些文件?
我有以下格式的日期: 2010-03-01T00:00:00-08:00
我在它上面抛出了以下SimpleDateFormats来解析它:
private static final SimpleDateFormat[] FORMATS = {
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"), //ISO8601 long RFC822 zone
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz"), //ISO8601 long long form zone
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"), //ignore timezone
new SimpleDateFormat("yyyyMMddHHmmssZ"), //ISO8601 short
new SimpleDateFormat("yyyyMMddHHmm"),
new SimpleDateFormat("yyyyMMdd"), //birthdate from NIST IHE C32 sample
new SimpleDateFormat("yyyyMM"),
new SimpleDateFormat("yyyy") //just the year
};
Run Code Online (Sandbox Code Playgroud)
我有一个方便的方法,使用这样的格式:
public static Date figureOutTheDamnDate(String wtf) {
if (wtf == null) {
return null;
}
Date retval = null;
for (SimpleDateFormat sdf : FORMATS) {
try {
sdf.setLenient(false)
retval = sdf.parse(wtf); …Run Code Online (Sandbox Code Playgroud) 可以说我有以下POJO:
public class MyThing {
private int myNumber;
private String myData;
//assume getter/setter methods
}
Run Code Online (Sandbox Code Playgroud)
现在可以将此POJO扩展为JPA实体吗?
@Entity
@Table(name = "my_thing")
public class MyThingEntity extends MyThing implements Serializable {
@Column(name = "my_number")
//?????????
@Column(name = "my_data")
//????????
}
Run Code Online (Sandbox Code Playgroud)
我想让POJO与JPA实体分开.POJO生活在一个不同的项目中,并且通常在没有持久层的情况下使用,我的项目希望将其保存在数据库中,并且不需要从POJO映射到实体并返回的开销.
我知道JPA实体是POJO,但是为了使用它,我必须包含一个实现javax.persistence的库,而使用相同基础对象的其他项目对于持久层没有用处.
这可能吗?这是一个好主意吗?
在上周,我创建了两个课程,我的团队对他们的表现表达了一些担忧.为了评估我的代码,我编写了一些简单的JUnit测试,这些测试通过构建丰富的测试数据集来运行这些类,然后通过相关方法为数千次迭代提供数据.我记录了每次迭代的运行时间,然后使用循环和记录了高,低和平均时间System.nanoTime().最后我让JUnit断言高和平均时间都在可接受的范围内.这种测试方法让我的团队对此代码充满信心.
JUnit是以这种方式测试性能的合适工具吗?是否有更好的工具来测试单元(方法和类)级别的性能?
我们来看看这张地图,其中'#'表示一个正方形和'.' 说明了一个自由方块:
1 . # # # . . 2 . # . . # . 3 # . . . . # 4 . # # # . . 5 . . . . . . 6 . . . . . . - 1 2 3 4 5 6
现在,如果我在方块4,5中放置一个'#',那么该区域将被"填充",如下所示:
1 . # # # . . 2 . # # # # . 3 # # # # # # 4 . # # # # . …
我的团队正在清理我们的使用,throws Exception并删除或替换它们,但有特殊例外.
常见的抛出是因为找不到实体.我们应该为每个实体类抛出泛型NotFoundException还是特定SomeClassNotFoundException的?
如果我们应该抛出一个特定的异常,我们应该为每个实体类型创建一个特定的Exception类吗?我们可以安全地使用仿制药吗?像这样class NotFoundException<T extends EntityBaseClass> extends Exception,然后构造函数负责声明我们正在处理的实体类型?
如果我们应该抛出一个特定的异常而不是使用泛型,那些异常是应该扩展还是实现NotFoundException抽象类或接口?
我正在进行单元测试,该测试运行代码,需要许多模拟对象来完成它需要做的事情(测试HTML + PDF渲染).为了使这个测试成功,我需要生成许多模拟对象,并且每个对象最终都会将一些String数据返回给正在测试的代码.
我想我可以通过实现我自己的Answer类IMockitoConfiguration来实现这一点,但是我不确定如何实现它们因此它们只影响返回字符串的方法.
我觉得以下代码接近我想要的.它会抛出一个强制转换异常java.lang.ClassCastException: java.lang.String cannot be cast to com.mypackage.ISOCountry.我认为这意味着我需要以某种方式默认或限制Answer只影响默认值String.
private Address createAddress(){
Address address = mock(Address.class, new StringAnswer() );
/* I want to replace repetitive calls like this, with a default string.
I just need these getters to return a String, not a specific string.
when(address.getLocality()).thenReturn("Louisville");
when(address.getStreet1()).thenReturn("1234 Fake Street Ln.");
when(address.getStreet2()).thenReturn("Suite 1337");
when(address.getRegion()).thenReturn("AK");
when(address.getPostal()).thenReturn("45069");
*/
ISOCountry isoCountry = mock(ISOCountry.class);
when(isoCountry.getIsocode()).thenReturn("US");
when(address.getCountry()).thenReturn(isoCountry);
return address;
}
//EDIT: …Run Code Online (Sandbox Code Playgroud) 我有一个ServletContextListener,它在我的Java EE应用程序启动时执行一些数据库管理功能.这在JPA和应用程序的其他部分启动/加载之前在我的应用程序中运行.如果数据库维护失败,我将记录错误.如果数据库维护失败,应用程序将无法正常运行,我想暂停应用程序.
如何从ServletContextListener.contextInitialized中优雅正确地停止应用程序?
Viven给出的解决方案很接近,但并不完全.当我抛出RuntimeException时,Glassfish处于不一致的状态,其管理控制台无法访问,但某些进程仍在运行并保持端口3700(IIOP?)打开,从而阻止重启.
在相当典型的EclipseLink/JPA应用程序中查找一些数据库性能问题.
我看到频繁的查询需要25-100ms.这些是简单查询,只是从表中选择其主键等于值的所有列.他们不应该慢.
我正在查看postgres日志中的查询时间,使用log_min_duration_statement,这样可以消除任何网络或应用程序开销.
此查询并不慢,但经常使用它.
为什么主键选择*会变慢?这是特定于postgres还是一般数据库问题?我怎样才能加快速度呢?一般来说?对于postgres?
来自pg日志的示例查询:
2010-07-28 08:19:08 PDT - LOG: duration: 61.405 ms statement: EXECUTE <unnamed> [PREPARE: SELECT coded_ele
ment_key, code_system, code_system_label, description, label, code, concept_key, alternate_code_key FROM coded
_element WHERE (coded_element_key = $1)]
Run Code Online (Sandbox Code Playgroud)
表有大约350万行.
我也在这个查询上运行EXPLAIN和EXPLAIN ANALYZE,它只进行索引扫描.
java ×5
jpa ×2
algorithm ×1
database ×1
date ×1
eclipselink ×1
encryption ×1
graph ×1
iso8601 ×1
java-ee ×1
javascript ×1
junit ×1
mocking ×1
mockito ×1
performance ×1
servlets ×1
sql ×1
unit-testing ×1