小编Xor*_*rty的帖子

IntelliJ:从事多个项目

我们在maven中构建了多个项目(我们将它们命名为A,B,C).项目A使用项目B的.jar,它使用项目C的.jar.

我正在修改所有A/B/C项目的代码,(A是MVC应用程序,B是业务服务,C是一些共享层).

问题是,在Eclipse/NetBeans中,我可以同时看到所有这些,并且修改它们很舒服.但在IDEA中,我必须打开IntelliJ IDEA的3个实例(或n个实例).

我错过了什么吗?使用IntelliJ时有更好的方法吗?对于我来说,这是IntelliJ的最大缺点.

intellij-idea

293
推荐指数
14
解决办法
20万
查看次数

IntelliJ IDEA - 插入行为

我想在IntelliJ IDEA 10中弄清楚一件事:

替代文字

  1. 目前的插入位置
  2. 按下向下箭头后插入符号移动的位置
  3. 我想要在哪里

这种设置可能吗?

java intellij-idea

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

CDI:beans.xml,我在哪里放你?

我使用Weld作为CDI实现.当我有空的beans.xml时,我试图组装实例化Weld容器的对象图的集成测试运行良好src/test/java/META-INF/beans.xml.这是一个简单的测试:

public class WeldIntegrationTest {
    @Test
    public void testInjector() {
        new Weld().initialize();
        // shouldn't throw exception
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我跑步时mvn clean install,我总是得到:Missing beans.xml file in META-INF!

我的根文件夹是"src"和"web",其中包含WEB-INF文件夹,但我也尝试使用默认的maven结构并将"web"重命名为"webapp"并将其移至src/main.我尝试了所有合理的位置:

 - src/main/java/META-INF/beans.xml
 - src/test/java/META-INF/beans.xml
 - web/WEB-INF/beans.xml
 - src/main/webapp/WEB-INF/beans.xml
 - src/main/webapp/META-INF/beans.xml
 - src/main/webapp/META-INF/(empty) and src/main/webapp/WEB-INF/beans.xml
Run Code Online (Sandbox Code Playgroud)

到目前为止没有任何作用:/

java java-ee maven cdi jboss-weld

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

正确发音MySQL?

可能听起来很奇怪,但对于一些演示问题,这对我来说非常重要.

它应该是:

  • "m | y | s | q | l"?(拼写)
  • "我的故事"?
  • "我的追求很好"?

或者完全不同的东西?

mysql

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

Vaadin:设计模式

我目前正在研究三种Vaadin应用程序,我真的觉得我想念一些东西.我之前曾经使用过Spring MVC,在这种情况下,体系结构清晰且分离,您可以向控制器注入服务,而不会将控制器耦合到UI等等.

现在在Vaadin那是不同的故事.所以,如果那里有任何Vaadin专家,请允许我问你几个问题:

问题1:

  • 将服务(或DAO)直接注入UI组件是否可以?
  • 示例:负责显示电子邮件应用程序中的联系人的组件(ContactWidget,基于带链接的VerticalLayout)需要显示联系人.将contactRepository直接注入此UI元素是否可以?

问题2:

  • 对主应用程序的引用正在传递给大量的UI组件,因为许多UI组件需要访问一些全局数据或在主应用程序类上调用全局方法
  • 示例:弹出组件具有打开新窗口的Button,该窗口应该是应用程序中主窗口的子窗口.因此弹出组件必须引用主应用程序.

问题3:

  • UI组件之间的依赖关系可能非常疯狂.可能在这里没什么可做的,但有时它并不觉得这个窗口依赖于这个依赖于弹出窗口的列表...你明白了,它看起来与我紧密相连

在我的代码转向Spaghetti之前,我想尽可能多地了解Vaadin的优秀设计,因此任何建议,经验和最佳实践都将受到赞赏.

design-patterns vaadin

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

创建存储过程时需要`definer`吗?

我把所有的MySQL程序写成root@localhost:

CREATE DEFINER=`root`@`localhost` PROCEDURE `p_add_user`(...)
Run Code Online (Sandbox Code Playgroud)

麻烦的是,当部署到另一台服务器时,我必须root用当前用户替换并替换localhost为当前的IP,这很烦人.

有没有办法编写程序,以便想要使用我的数据库和程序的人不必修改每个程序的定义者?

mysql stored-procedures

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

Java:没有安全管理器:RMI类加载器被禁用

嗨,我有RMI应用程序,现在我尝试从我的客户端调用服务器上的一些方法.我有以下代码:

public static void main(final String[] args) {
    try {
        //Setting the security manager

        System.setSecurityManager(new RMISecurityManager());
        IndicatorsService server = (IndicatorsService) Naming
                .lookup("rmi://localhost/" + IndicatorsService.SERVICE_NAME);
        DataProvider provider = new OHLCProvider(server);
        server.registerOHLCProvider(provider);
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (RemoteException e) {
        e.printStackTrace();
    } catch (NotBoundException e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

服务器已正确加载,但当我尝试调用时,server.registerOHLCProvider(provider);我收到以下错误:

     java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
    java.lang.ClassNotFoundException: sk.xorty.client.providers.OHLCProvider (no security manager: RMI class loader disabled)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:336) …
Run Code Online (Sandbox Code Playgroud)

java networking remoting rmi securitymanager

26
推荐指数
3
解决办法
9万
查看次数

IntelliJ - 从测试覆盖率报告中排除某些类(包)

我目前正在使用Java与Play框架.我有JUnit测试,我试图用IntelliJ覆盖运行器测量覆盖率.

不幸的是,Play会生成一些垃圾类,IntelliJ会在报告中包含它们.有没有办法从覆盖率报告中排除某些模式?

intellij-idea test-coverage

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

什么样的Java类型是"[B"?

我试图通过Java代码(Hibernate)从MySQL DB获得MD5加密传递.但我不能得到String或任何合理的Java类型.

我唯一得到的是这个无用的消息: java.lang.ClassCastException:[B不能转换为com.mysql.jdbc.Blob(或者我尝试转换的任何Java类型).

这是我的方法:

public void testCrypto() {
        session.beginTransaction();
        // creates native SQL query
        // uses native MySQL's MD5 crypto
        final Blob pass = (Blob) session.createSQLQuery("SELECT MD5('somePass')")
            .list().get(0);
        session.getTransaction().commit();
}
Run Code Online (Sandbox Code Playgroud)

这是完整的堆栈跟踪:

java.lang.ClassCastException: [B cannot be cast to com.mysql.jdbc.Blob
    at domain.DatabaseTest.testCrypto(DatabaseTest.java:57)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at junit.framework.TestCase.runTest(TestCase.java:168)
    at junit.framework.TestCase.runBare(TestCase.java:134)
    at junit.framework.TestResult$1.protect(TestResult.java:110)
    at junit.framework.TestResult.runProtected(TestResult.java:128)
    at junit.framework.TestResult.run(TestResult.java:113)
    at junit.framework.TestCase.run(TestCase.java:124)
    at junit.framework.TestSuite.runTest(TestSuite.java:232)
    at junit.framework.TestSuite.run(TestSuite.java:227)
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) …
Run Code Online (Sandbox Code Playgroud)

java md5 cryptography hibernate jdbc

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

Eclipse:即时自动完成

我对Eclipse自动填充代码的方式并不完全满意.我喜欢IntelliJ如何提示建议的方式(有人说它相当具有侵略性,但我喜欢这样).

所以我去了:Window - > Preferences - > Java - > Editor - > Content Assist并将延迟设置为0ms,自动激活触发器设置为ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.

现在Eclipse在自动完成时看起来非常快,但有一个非常讨厌的事情:它在每个空间命中完成变量的建议名称.

所以,当我想输入:

String joe = "Joe";
Run Code Online (Sandbox Code Playgroud)

日食快到足以毁掉它:

String joeString = ...;
Run Code Online (Sandbox Code Playgroud)

换句话说,按下:String joe[space]joeString.我希望我很清楚enoguh,谢谢你的建议:)

java eclipse intellij-idea

25
推荐指数
2
解决办法
4672
查看次数