我创建了一个具有以下结构的项目:

HibernateUtil中:
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
Configuration configuration = new Configuration().configure( "C:\\Users\\Nikolay_Tkachev\\workspace\\hiberTest\\src\\logic\\hibernate.cfg.xml");
return new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void shutdown() {
// Close caches and …Run Code Online (Sandbox Code Playgroud) 如果我用mycontroller方法写:
return "redirect:url";
Run Code Online (Sandbox Code Playgroud)
什么参数将传递给url(它可能是controler方法或jsp页面)?
有一种方法可以抑制ActiveMQ服务器上定义的队列上的重复消息吗?
我尝试手动定义JMSMessageID,(message.setJMSMessageID("uniqueid")),但服务器忽略此修改并传递带有内置生成的JMSMessageID的消息.
根据规范,我没有找到关于如何重复删除邮件的参考.
在HornetQ中,为了解决这个问题,我们需要在消息定义上声明HQ特定属性org.hornetq.core.message.impl.HDR_DUPLICATE_DETECTION_ID.
即:
Message jmsMessage = session.createMessage();
String myUniqueID = "This is my unique id"; // Could use a UUID for this
message.setStringProperty(HDR_DUPLICATE_DETECTION_ID.toString(), myUniqueID);
Run Code Online (Sandbox Code Playgroud)
有人知道ActiveMQ是否有类似的解决方案?
我希望能够以编程方式注销所有登录用户.如何在某些事件上强制注销所有用户?
我学习了Java 8的新功能.
我正在玩不同的例子,我发现了一个奇怪的行为:
public static void main(String[] args) {
method(Test::new);
}
static class Test{
}
private static void method(Supplier<Test> testSupplier){
Test test = testSupplier.get();
}
Run Code Online (Sandbox Code Playgroud)
这段代码编译成功,但我不知道它是如何工作的.
为什么可以Test::new接受供应商?
供应商界面看起来很简单:
@FunctionalInterface
public interface Supplier<T> {
T get();
}
Run Code Online (Sandbox Code Playgroud) 最近我加入了一个新的团队,这里的人们使用h2进行存根服务.
我想知道我是否可以使用Web界面显示此数据库的内容.在工作中,它可以去localhost:5080
我有一个使用h2数据库的项目,但是当我点击时我看不到h2 web控制台 localhost:5080
我也试过localhost:8082- 它也行不通.
我的项目配置(成功运行):
<bean id="wrappedDataSource" class="net.bull.javamelody.SpringDataSourceFactoryBean">
<property name="targetName" value="dataSource" />
</bean>
<bean id="wrappedDataSource" class="net.bull.javamelody.SpringDataSourceFactoryBean">
<property name="targetName" value="dataSource" />
</bean>
<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
<property name="driverClassName" value="org.h2.Driver" />
<property name="url" value="jdbc:h2:~/test;MODE=PostgreSQL" />
<property name="username" value="sa" />
<property name="password" value="" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="wrappedDataSource"/>
<property name="configLocation">
<value>classpath:hibernate-test.cfg.xml</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.connection.charSet">UTF-8</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hbm2ddl.auto">create-drop</prop>
</props>
</property>
</bean>
<context:property-placeholder location="classpath:jdbc.properties"/>
Run Code Online (Sandbox Code Playgroud)
我没有想法如何访问h2 web控制台.请帮忙.
我只在.m2文件夹中看到提到h2 …
正如我们所知道Spring使用代理来增加功能(@Transactional和@Scheduled举例)。有两种选择-使用JDK动态代理(该类必须实现非空接口),或使用CGLIB代码生成器生成子类。我一直认为proxyMode允许我在JDK动态代理和CGLIB之间进行选择。
但是我能够创建一个示例,说明我的假设是错误的:
单身人士:
@Service
public class MyBeanA {
@Autowired
private MyBeanB myBeanB;
public void foo() {
System.out.println(myBeanB.getCounter());
}
public MyBeanB getMyBeanB() {
return myBeanB;
}
}
Run Code Online (Sandbox Code Playgroud)
原型:
@Service
@Scope(value = "prototype")
public class MyBeanB {
private static final AtomicLong COUNTER = new AtomicLong(0);
private Long index;
public MyBeanB() {
index = COUNTER.getAndIncrement();
System.out.println("constructor invocation:" + index);
}
@Transactional // just to force Spring to create a proxy
public long getCounter() {
return index;
}
} …Run Code Online (Sandbox Code Playgroud) 我想调试.class文件.例如来自JDK的一些.我下载了源代码并附上了它们.
public File[] listFiles(FilenameFilter paramFilenameFilter)
{
String[] arrayOfString = list(); // now we here
if (arrayOfString == null) return null;
....
}
Run Code Online (Sandbox Code Playgroud)
然后我键入F6并移动到下一行.在那之后,我试着看看它的价值,arrayOfString但我看到以下内容:
表达视图:

情况是正常的吗?有没有办法调试?
更新1:

更新2:

更新3:

我有以下类描述片段:
...
@Column(name = "invalidate_token_date")
@Temporal(TemporalType.TIMESTAMP)
private LocalDateTime invalidateTokenDate;
....
Run Code Online (Sandbox Code Playgroud)
此代码不起作用,因为@Temporal不支持LocalDateTime.我看到的建议如何使用LocalDateTime从乔达时间,但我使用Java 8.
请给我一些建议.
PS
这是我目前的JPA依赖:
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud) 注意:这是不是重复,请仔细阅读题目сarefully /sf/users/241389361/报价:
真正的问题是为什么代码有时会起作用.即使没有lambdas,问题也会重现.这让我觉得可能存在JVM错误.
在/sf/answers/3759645221/的评论中,我试图找出原因,为什么代码的行为从一个开始到另一个不同,并且该讨论的参与者给了我一些建议来创建一个单独的主题.
不要考虑以下源代码:
public class Test {
static {
System.out.println("static initializer: " + Thread.currentThread().getName());
final long SUM = IntStream.range(0, 5)
.parallel()
.mapToObj(i -> {
System.out.println("map: " + Thread.currentThread().getName() + " " + i);
return i;
})
.sum();
}
public static void main(String[] args) {
System.out.println("Finished");
}
}
Run Code Online (Sandbox Code Playgroud)
有时(几乎总是)它会导致死锁.
输出示例:
static initializer: main
map: main 2
map: ForkJoinPool.commonPool-worker-3 4
map: ForkJoinPool.commonPool-worker-3 3
map: ForkJoinPool.commonPool-worker-2 0
Run Code Online (Sandbox Code Playgroud)
但有时它会成功完成(非常罕见):
static initializer: main
map: main 2
map: main …Run Code Online (Sandbox Code Playgroud) java ×9
spring ×4
hibernate ×2
java-8 ×2
orm ×2
.class-file ×1
concurrency ×1
date ×1
deadlock ×1
debugging ×1
duplicates ×1
eclipse ×1
h2 ×1
h2db ×1
jms ×1
jvm-hotspot ×1
logout ×1
mom ×1
proxy ×1
redirect ×1
singleton ×1
spring-mvc ×1