小编Saz*_*man的帖子

Hibernate @NotEmpty注释等效于Javax.package或替代

有没有办法在@NotEmpty不编写自定义验证的情况下实现hibernate验证?javax.validation包不包含此批注.只有@NotNull.但它不验证非空值但为空值.所以我想看看替代品@NotEmpty.

@Pattern?怎么样?

java validation annotations bean-validation notnull

36
推荐指数
2
解决办法
4万
查看次数

调用servlet的destroy方法

根据链接http://www.xyzws.com/Servletfaq/when-is-destroy-of-servlets-called/20,调用destroy方法的原因之一是当servlet没有得到请求时很长一段时间.

我想可能会有一些页面长时间没有被调用.那么,这是否意味着销毁将被调用,它们将不再使用?

实际上,我在采访中被问到这个问题,他告诉我只有在服务器关闭时才会调用destroy方法.

感谢任何帮助.

java servlets java-ee destroy

17
推荐指数
3
解决办法
2万
查看次数

在Gradle中提供'依赖'

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 providedruntime依赖范围有什么区别?

java dependency-management gradle

16
推荐指数
3
解决办法
1万
查看次数

无法使用selenium-webdriver中的gettext提取文本,也无法单击它

我无法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"

任何人都可以建议如何进行的想法.

java selenium-webdriver

10
推荐指数
3
解决办法
2万
查看次数

了解CDI中类型安全的必要性

首先,我要澄清一下,这篇文章并不是要批评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的优秀和杰出特征?

编辑:

积分,推动突出显示

  1. 如果我使用自定义限定符来实现每个服务的类型安全性或dao(每个接口),那么对于大型应用程序(如具有1000个或更多服务或具有多个实现的dao类),它将是混乱的.那么对于大型应用,使用类型安全注入是否可行?
  2. 如果上述问题的答案为"否",那么使用类型安全有什么意义呢?
  3. 即使为类型安全编写注释是可行的,但在大型应用程序中,仅仅为了避免冗长的xml配置真的值得付出努力吗?
  4. 实际上我需要类型安全而不是bean名称限定符?

关于以上几点的简短讨论

  1. 当你真正需要类型安全注入时,没有太多的情况,特别是当你有一个接口的实现时,你应该 …

jsf dependency-injection seam java-ee cdi

9
推荐指数
1
解决办法
2291
查看次数

如何从Spring中的@RequestMapping中排除url映射?

我有一个请求映射,可以在上下文之后处理任何字符串,例如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)

java spring spring-mvc request spring-security

6
推荐指数
1
解决办法
5648
查看次数

在尝试持久化实体时,具有相同标识符值的不同对象已与会话关联

我有一个小问题,我不知道如何解决.请问你能帮帮我吗?当我试图坚持实体时,我得到下一个异常:

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)

sql hibernate seam

5
推荐指数
1
解决办法
3万
查看次数

工厂模式的真正优势

我一年以来一直在使用工厂模式.有时我只觉得真正的优势就是干净的代码.让我解释,

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)

java design-patterns

5
推荐指数
1
解决办法
4182
查看次数

是否有eclipse中的工具,eclipse插件或可自动限制访问修饰符的外部程序?

我曾经非常难以限制我的访问,variables/methods/classes当我不应该时,我倾向于使用公共场所.

我只是想知道是否有任何工具 - 插件,外部或其他 - 可以搜索您的源代码,找到调用您的内容variables/methods/classes并更改可见性,如果它太高.

因此,例如,如果我有一个公共变量,并且该类之外没有任何东西调用它,那么该工具将减少其对私有的访问.

对于一些有很多公共变量的旧项目,我主要需要这个.我需要很长时间才能筛选出所有这些内容,当我回到这些项目再次处理它们时,将它们公之于众是非常烦人/低效的.

java eclipse access-modifiers

5
推荐指数
1
解决办法
261
查看次数

Spring - 没有找到WebApplicationContext:没有注册ContextLoaderListener?

我在尝试运行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)

有人可以在这方面帮助我吗?

java spring spring-mvc

5
推荐指数
2
解决办法
5万
查看次数