有没有办法在@NotEmpty不编写自定义验证的情况下实现hibernate验证?javax.validation包不包含此批注.只有@NotNull.但它不验证非空值但为空值.所以我想看看替代品@NotEmpty.
用@Pattern?怎么样?
根据链接http://www.xyzws.com/Servletfaq/when-is-destroy-of-servlets-called/20,调用destroy方法的原因之一是当servlet没有得到请求时很长一段时间.
我想可能会有一些页面长时间没有被调用.那么,这是否意味着销毁将被调用,它们将不再使用?
实际上,我在采访中被问到这个问题,他告诉我只有在服务器关闭时才会调用destroy方法.
感谢任何帮助.
我build.gradle在我面前有一些声明的依赖项,provided但在文档中我没有看到这个依赖范围.
dependencies {
compile("org.springframework.boot:spring-boot-starter-web:1.2.4.RELEASE")
....
provided 'backport-util-concurrent:backport-util-concurrent:3.1'
provided 'org.javolution:javolution:5.5.1@jar
....
}
Run Code Online (Sandbox Code Playgroud)
这是由插件提供的吗?如果是这样,我怎么知道它属于哪个插件?
Gradle provided与runtime依赖范围有什么区别?
我无法gettext在selenium中找到以下代码webdriver.
<a id="551" class="blueTextNormal1 spc" onclick="sPh(this,'079');return false;" title="079">Country</a>
Run Code Online (Sandbox Code Playgroud)
我想获得Country的价值.我尝试使用xpath
driver.findElement(By.xpath("//*[@id='551']").getText())
Run Code Online (Sandbox Code Playgroud)
但它没有返回任何价值.我试过的时候
driver.findElement(By.xpath("//*[@id='551']")).getAttribute("title"))
Run Code Online (Sandbox Code Playgroud)
我得到的值是"079"
任何人都可以建议如何进行的想法.
首先,我要澄清一下,这篇文章并不是要批评CDI,而是要发现CDI设计背后的思路和假设,这对设计任何使用CDI的网络应用程序都有明显的影响.
CDI(Java EE 6)最显着的特征之一是类型安全.Jboss Seam在类型上并不安全.它使用name来限定要注入的任何实例.如下:
@Name("myBean")
public class MyBean implements Bean {
...
}
@Name("yourBean")
public class YourBean implements Bean {
...
}
Run Code Online (Sandbox Code Playgroud)
注入MyBean时,可以这样做:
@In
private Bean myBean; //myBean is injected
@In
private Bean yourBean; //yourBean is injected
Run Code Online (Sandbox Code Playgroud)
早期版本的Spring(3.0之前),这种类型的注入发生在下面:
只需在bean配置文件中定义bean:
<bean id="myBean" class="com.example.common.MyBean">
...
</bean>
<bean id="yourBean" class="com.example.common.YourBean">
...
</bean>
Run Code Online (Sandbox Code Playgroud)
并使用命名限定符,决定使用哪一个:
@Autowired
@Qualifier("myBean")
private Bean bean;
@Autowired
@Qualifier("yourBean")
private Bean bean;
Run Code Online (Sandbox Code Playgroud)
但现在在CDI中,首先需要Qualifier为任何特定类型的对象定义自定义注释.然后使用该注释来限定该对象.在一天结束时,当您查看源代码时,您会发现,您浪费了大量时间为依赖注入编写大量自定义注释.Java社区正朝着注释方向发展,将基于XML的配置(冗长的XML)留在后面.有没有什么可以说服任何人认为这(使用自定义注释键入安全性)不是冗长的注释,而是作为CDI的优秀和杰出特征?
编辑:
积分,推动突出显示
关于以上几点的简短讨论
我有一个请求映射,可以在上下文之后处理任何字符串,例如www.example.com/anystring
我按如下方式处理:
@RequestMapping(value="/{str}", method = RequestMethod.GET)
public String getApp(@PathVariable("str") String anyString, ModelMap model) {
//Do something
}
Run Code Online (Sandbox Code Playgroud)
问题是我在我的应用程序的URL 2-3处网址如下:www.example.com/about,www.example.com/contact等.
我为他们编写了Request Mappings,如下所示:
@RequestMapping("/about")
public String getAboutPage() {
return "about";
}
Run Code Online (Sandbox Code Playgroud)
但很明显,因为我已经声明任何字符串应该被处理getApp(),所以getAboutPage()永远不会被执行.我怎样才能排除/about,/contact等从getApp()映射.我们显然可以在URL字符串中添加另一个关键字,但这在我的应用程序用例中是不可能的.请帮助.:(
编辑:
我应该处理/about,/contact内部getApp()像:
@RequestMapping(value="/{str}", method = RequestMethod.GET)
public String getApp(@PathVariable("str") String anyString, ModelMap model) {
if(anyString.equals("about")){
//do about related stuff
}
if(anyString.equals("contact")){
//do contact related stuff
}
//Do something
} …Run Code Online (Sandbox Code Playgroud) 我有一个小问题,我不知道如何解决.请问你能帮帮我吗?当我试图坚持实体时,我得到下一个异常:
12:47:39,398 ERROR [org.black.dmitriy.entityHome.ScheduleHome] (http--127.0.0.1-8080-1) javax.persistence.EntityExistsException: a different object with the same identifier value was already associated with the session: [org.black.dmitriy.entity.Schedule#1]
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1333) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1289) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1295) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:859) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_04]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_04]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_04]
at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_04]
at org.jboss.seam.persistence.EntityManagerInvocationHandler.invoke(EntityManagerInvocationHandler.java:46) [jboss-seam.jar:2.3.0.Final]
at $Proxy81.persist(Unknown Source) at org.jboss.seam.framework.EntityHome.persist(EntityHome.java:84) [jboss-seam.jar:2.3.0.Final]
at org.black.dmitriy.entityHome.ConversationHome.tryPersist(ConversationHome.java:147) [ejb.jar:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_04]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_04]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_04]
at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_04]
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22) [jboss-seam.jar:2.3.0.Final]
at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:32) [jboss-seam.jar:2.3.0.Final]
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56) [jboss-seam.jar:2.3.0.Final] …Run Code Online (Sandbox Code Playgroud) 我一年以来一直在使用工厂模式.有时我只觉得真正的优势就是干净的代码.让我解释,
interface A {
public void test();
}
class B implements A {
public void test() {
}
}
class C implements A {
public void test() {
}
}
class Factory {
public static A getObject(String name){
if(name.equalsIgnoreCase("B")){
return new B();
}else if(name.equalsIgnoreCase("C")){
return new C();
}
return new B();
}
}
public class Test {
public static void main(String[] args) {
A a = Factory.getObject(args[0]);
// if i dint use factory pattern
A nofactory=null;
if(args[0].equalsIgnoreCase("B")){
nofactory= new B(); …Run Code Online (Sandbox Code Playgroud) 我曾经非常难以限制我的访问,variables/methods/classes当我不应该时,我倾向于使用公共场所.
我只是想知道是否有任何工具 - 插件,外部或其他 - 可以搜索您的源代码,找到调用您的内容variables/methods/classes并更改可见性,如果它太高.
因此,例如,如果我有一个公共变量,并且该类之外没有任何东西调用它,那么该工具将减少其对私有的访问.
对于一些有很多公共变量的旧项目,我主要需要这个.我需要很长时间才能筛选出所有这些内容,当我回到这些项目再次处理它们时,将它们公之于众是非常烦人/低效的.
我在尝试运行Spring项目时遇到以下错误
HTTP Status 500 - java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
Run Code Online (Sandbox Code Playgroud)
尽管将清单工具添加到我的web.xml.我仍然收到此错误.下面是我添加到web.xml的监听器:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/HelloWebRedirect-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)
有人可以在这方面帮助我吗?