应该很容易:
<bean id="handlerMapping"
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<ref bean="myInterceptor" />
</list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
但这样就不会调用拦截器.
我希望这段代码能够显示true:
int[] array = {1, 2};
System.out.println(Arrays.asList(array).contains(1));
Run Code Online (Sandbox Code Playgroud) 是否可以从EntityManager获取Hibernate Session对象?我想访问一些特定于hibernate的API ...
我已经尝试过类似的东西:
org.hibernate.Session hSession =
( (EntityManagerImpl) em.getDelegate() ).getSession();
Run Code Online (Sandbox Code Playgroud)
但是只要我在EJB中调用一个方法,我就会得到"在EJB上调用期间发生系统异常",并带有NullPointerException
我使用glassfish 3.0.1
假设我有一个应用程序必须缩短URL,但也做其他事情.(喜欢google.com和goo.gl,或者facebook.com和fb.me).
简单地部署两个应用程序很容易,但(现在)只需一个就可以了.使用弹簧和弹簧mvc.我有以下映射:
@RequestMapping(value="/{shortUrlKey}", headers="Host=foo.br")
...
@RequestMapping(value="/{username}")
Run Code Online (Sandbox Code Playgroud)
唉,headers注释不是提供更具体的信息,而是提供限制.所以,如果我有这两个,只有后者被调用,即使我打开它http://foo.br/asdf.如果只留下前者,它适用于来自的人foo.br,如果主人不同,则不会打开任何东西.
所以,问题:
如果有一些可插拔的方法解决机制,也许两者都可以工作.有这样的吗?
我做了以下"模拟":
byte[] b = new byte[256];
for (int i = 0; i < 256; i ++) {
b[i] = (byte) (i - 128);
}
byte[] transformed = new String(b, "cp1251").getBytes("cp1251");
for (int i = 0; i < b.length; i ++) {
if (b[i] != transformed[i]) {
System.out.println("Wrong : " + i);
}
}
Run Code Online (Sandbox Code Playgroud)
对于cp1251这个输出只有一个错误的字节 - 在位置25.
对于KOI8-R- 所有罚款.
适用于cp1252- 4或5个差异.
这是什么原因以及如何克服这个原因?
我知道在任何编码中将字节数组表示为字符串是错误的,但这是支付提供商协议的要求,所以我没有选择权.
更新:在ISO-8859-1作品中代表它,我将它用于byte[]部分和cp1251文本部分,所以问题仍然只是出于好奇
鉴于:
class A
{
public void m(List l) { ... }
}
Run Code Online (Sandbox Code Playgroud)
假设我想m用反射调用方法,将ArrayList作为参数传递给m:
List myList = new ArrayList();
A a = new A();
Method method = A.class.getMethod("m", new Class[] { myList.getClass() });
method.invoke(a, Object[] { myList });
Run Code Online (Sandbox Code Playgroud)
第getMethod3行将抛出,NoSuchMethodException因为myList的运行时类型是ArrayList,而不是List.
有没有一个很好的通用方法,不需要知道A类的参数类型?
一个典型的用例:我有applicationContext.xml和dispatcher-servlet.xml.在父上下文(applicationContext.xml)中,我有:
<context:property-placeholder location="classpath:application.properties" />
Run Code Online (Sandbox Code Playgroud)
但是,Web上下文无法访问由它加载的属性 - 无论是在xml中还是在使用中@Value.(它们只是没有解析而且表达式(${varName})被设置为值而不是)
我通过添加<context:property-placeholder>to来处理它dispatcher-servlet.xml,但我想知道是否:
int[][] array = new int[][] {...}
int[][] clone = array.clone();
Run Code Online (Sandbox Code Playgroud)
我天真地期待这个工作.但它没有 - 它只克隆了第一个维度,如果我想要一个真正的克隆,我必须手动克隆另一个维度.注意:内容已正确复制.但是,当我改变时clone[0][1],它反映在array[0][1]
虽然.clone()已知执行浅层克隆,但int[][]看起来像一个对象(如果我们不知道它的内部实现,至少)
为什么选择这种行为?是不是int[][]引用数组对象,而不仅仅是数组的第一个维度?在什么情况下只克隆第一个维度所需的行为?
简而言之,我想要的是:
public String action(@SessionAttribute User user) {..}
Run Code Online (Sandbox Code Playgroud)
代替
public String action(HttpSession session) {
User user = session.getAttribute("user");
}
Run Code Online (Sandbox Code Playgroud)
主要是为了:
本机查询正在清除第二级缓存条目.来自7年前的hibernate论坛的回答说,HQL更新查询也清除了二级缓存.但这仍然是真的吗?
由于HQL查询具有要更新的确切字段,并且在哪个实体中,我认为不应该像session.save(..)调用常规一样难以表现.
java ×9
spring ×4
spring-mvc ×4
hibernate ×2
arrays ×1
collections ×1
glassfish-3 ×1
java-ee ×1
jpa ×1
reflection ×1