小编Mar*_*nna的帖子

Java使用SSL进行数据库连接

我目前正在连接到我的数据库而不使用SSL.我现在想使用SSL.我设置它的方式是我的数据库源是在配置中.

DB_SOURCE=jdbc:mysql://myDatabaseInfo:3306/DB_NAME?
DB_USER=dbUser
DB_PW=dbPw
Run Code Online (Sandbox Code Playgroud)

我可以通过使用以下参数调用我的程序来使SSL连接正常工作

-Djavax.net.ssl.trustStore=path\to\truststore
-Djavax.net.ssl.trustStorePassword=myPassword
Run Code Online (Sandbox Code Playgroud)

我也可以通过更改代码本身的env变量来使其工作

dbSource += "?useSSL=true";
System.setProperty("javax.net.ssl.trustStore", "path\to\truststore");  
System.setProperty("javax.net.ssl.trustStorePassword", "myPassword");  
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(dbSource, dbUser, dbPw); 
Run Code Online (Sandbox Code Playgroud)

但是,我的目标是在不对代码进行任何更改的情况下建立SSL连接,而无需更改我使用的VM参数.有没有办法设置我的来源以包含这些信息?

就像是:

jdbc:mysql://myDatabaseInfo:3306/DB_NAME?useSSL=true&trustCertificateKeyStoreUrl=path\to\truststore&trustCertificateKeyStorePassword=myPassword
Run Code Online (Sandbox Code Playgroud)

我完全尝试了这个并且它不起作用,理想情况下我可以将信息添加到我已经拥有的配置中,这样我就不必在多个地方进行更改.有任何想法吗?

java mysql database ssl truststore

13
推荐指数
1
解决办法
5424
查看次数

Java - 线程和CPU之间的关系

我是多线程的新手,我正在开发一个项目,我试图在我的Java程序中使用4个CPU.我想做点什么

int numProcessors = Runtime.getRuntime().availableProcessors();
ExecutorService e = Executors.newFixedThreadPool(numProcessors);
Run Code Online (Sandbox Code Playgroud)

这可以保证每个CPU都有一个线程工作吗?在我创建线程时,系统不会很忙,但是一段时间后它会非常繁忙.我认为操作系统会选择最不繁忙的CPU来创建线程,但是如果它们在创建时没有特别繁忙的话它是如何工作的呢?

此外,线程池服务应该重用线程,但如果它看到另一个CPU上有更多的可用性,它会杀死线程并在那里产生一个新线程吗?

java multithreading executorservice threadpool

11
推荐指数
1
解决办法
953
查看次数

Java - 如何在等待数据的进程上实现线程

我对多线程编程很新,我希望能够深入了解实现以下想法的最佳方法.

现在我的代码就是这样的 目前的功能

它具有独特的线程,因此在处理每个数据并将其写入数据库所需的时间内,新数据会进入并排队,这会使事情变得过于缓慢.我在4CPU服务器上运行,但当前设置仅使用1.

我想将剩下的3个CPU中间件完成的工作分开.我最好怎么做?我认为我可以为每个新数据创建一个新线程,但我们正在讨论一天中成千上万的新线程.从我读到的,与此相关的开销将非常大.内存对我来说是一个问题所以如果所有这些线程的创建都占用太多内存,我就会遇到麻烦.新线程是否会使用不太繁忙的CPU,或者它是否使用相同的CPU,因为它是相同的JVM?

如果是这样的话,每个新数据的处理和DB写入不应该超过几秒钟.

我也在阅读线程池,但这个想法对我来说有点混乱,我找不到一个很好的例子.

我在想这样的事情 理念

提出合理的设计,请帮助多线程新手!提前致谢 :-)

java multithreading threadpool

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

Java - 如何让logger在shutdown hook中工作?

我有一个专门的记录器类,它使用java.util.logging.Logger该类.我希望能够在另一个类的关闭钩子中使用此记录器.但是,它似乎不会在关机时登录.根据我的阅读,可能已经为记录器本身激活了一个关闭钩子,这导致了问题.

我怎样才能让它发挥作用?理想情况下,我希望在日志文件中看到我实际上在进程终止时执行了shutdown钩子.

java logging shutdown-hook

8
推荐指数
1
解决办法
5976
查看次数

AngularJS如何使用过滤器对图像进行延迟加载

我正在开发一个角度应用程序,其中主页面加载1000个图像,但用户一次只能查看20个.我的列表中还有几个过滤器,因此可以根据不同的标准对其进行过滤和排序.

我已经尝试过http://binarymuse.github.io/ngInfiniteScroll/#http://ngscroller.herokuapp.com/,但似乎都没有那么好用.

Ngscroller确实可以工作,但是当我尝试应用我的过滤器时,它会中断.我也更喜欢这个,因为它不需要我包含jquery.有没有可以做我需要的简单指令?我正在尝试加速我的网页,但如果有一些已经完成此操作的东西,我不想重新发明轮子.

这是我对ngScroller的尝试:http://plnkr.co/edit/r0uhV3OxT2USxmrBQk22?p = preview

<div class="content" ng-controller="MainController" ng-scroller="content">
  <ul class="list" ng-scroller-repeat="item in items | filter:idOver500k | orderBy:predicate:!reverse">
    <li class="item">{{item.text}}</li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

滚动工作没有过滤器和orderBy,但我正在寻找一种方法来处理所有情况.

加载页面至少需要3秒才能删除图像.看起来只有在获得所有图像时才加载角度.处理这个问题的最佳方法是什么?

谢谢!

javascript infinite-scroll angularjs

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

Angular创建一个可以单击的mouseenter popover

我正在尝试创建一个可以单击的弹出窗口.AngularUI有一个很好的方式来指示延迟显示弹出窗口需要多长时间,但我需要一个类似的指令,允许我在弹出窗口内单击.我不能这样做,因为它会在mouseleave上自动消失.我可以使用像popover-close-delay这样的东西,但我也想确保一次只打开一个popover.理想情况下,将鼠标悬停在弹出窗口上的效果与悬停在其父元素上的效果相同.

我也发现了这个,但我无法让它工作,我怀疑它可能与AngularStrap有关,而不是bootstrap ui.使用angular-ui-bootstrap创建可Hoverable popover

这是我的代码

  <div style="width:50px" popover="I appeared on mouse enter!" 
  popover-placement="right" popover-trigger="mouseenter" popover-popup-delay=600>Item 1</div>
  <div style="width:50px" popover="I appeared on mouse enter!" 
  popover-placement="right" popover-trigger="mouseenter" popover-popup-delay=600>Item 2</div>
  <div style="width:50px" popover="I appeared on mouse enter!" 
  popover-placement="right" popover-trigger="mouseenter" popover-popup-delay=600>Item 3</div>
  <div style="width:50px" popover="I appeared on mouse enter!" 
  popover-placement="right" popover-trigger="mouseenter" popover-popup-delay=600>Item 4</div>
Run Code Online (Sandbox Code Playgroud)

http://plnkr.co/edit/moHGYOdmIOE4IFDOICKs?p=preview

popover angularjs angular-ui-bootstrap

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

如何使用查询对iReport中的特定行进行求和?

我正在尝试使用iReport创建汇总表.我的数据集正在返回购买清单和价格.就像是

Milk, $1.23

Chicken, $5.45

Milk, $1.44

等等.我希望我的桌子能够按产品细分我的项目.我想要一个包含列的表:

  • 购买产品的次数(产品牛奶的#rows),
  • 在产品上花费的总金额(产品是牛奶的价格总和),
  • 和产品的平均价格(第2栏除以第1栏).

我怎样才能做到这一点?我一直在玩变量,我可以获得所有价格的总和,但我不知道如何使用更复杂的查询来处理数据的子集.

jasper-reports ireport

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

Inkscape - 如何从unix命令行设置笔触样式

我正在编写一个使用svg在图像上绘制点的应用程序.该图像最初是作为pdf进行的,我使用命令中的Inkscape将其转换为.svg文件:

inkscape –l convertedImage.svg baseImage.pdf

然后在我的html中使用我的svg标签中的转换后的图像.

<svg>
    <image x=”100” y=”100” width=”500” height=”500”
    xlink:href=”/my/location/convertedImage.svg”></image>
    …
</sig>
Run Code Online (Sandbox Code Playgroud)

我的问题是转换后图像线太亮了.如果我打开Inkscape GUI,我可以选择图像,然后在"笔触样式"选项卡中将宽度增加1px.这样做会使图像看起来像我也想要它,但我需要能够以编程方式执行它,因为我每天都在运行这个命令,通过许多pdf文件.

有没有办法可以:

  1. 在inkscape unix命令中包含"笔触样式宽度"设置?
  2. 不知何故使用css在svg img标签中设置它?

html javascript svg inkscape

4
推荐指数
1
解决办法
613
查看次数

java查找NY和UTC之间的偏移量

我想获得纽约(美国/东部)和UTC之间的当前偏差.无论我的服务器在哪个时区,以及其他任何内容,我如何获得此值.我只想要以毫秒为单位的偏移量.我确信有一种快速的方法可以做到这一点,但我还没有找到它.

先感谢您!

java time timezone

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

ObjectOutputStream永远挂起

我有一个使用SSLSocket连接到服务器的客户端.接下来,我尝试创建一个OOSObjectOutputStream oos = new ObjectOutputStream(sslsocket.getOutputStream());

如果一切都在服务器端运行良好,这很好.但是,我想在客户端尝试创建ObjectOutputStream,但如果在60秒内没有发生,请记录错误并继续处理.我没有看到任何超时选项.如何做到这一点的任何例子?

     SSLSocket sslsocket;
     try {
            System.setProperty("javax.net.ssl.trustStore", <myKeystore>);
            System.setProperty("javax.net.ssl.trustStorePassword", <myPW>);
            SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
            sslsocket = (SSLSocket) sslsocketfactory.createSocket(InetAddress.getLocalHost(), <myPort>);

     } catch (Throwable e) {
            logger.logError(e.getMessage());
            return null;
     }

      // This is where it hangs forever
      ObjectOutputStream oos = new ObjectOutputStream(sslsocket.getOutputStream());
      oos.flush(); // never gets here
      oos.writeObject(orders);

      ObjectInputStream ois = new ObjectInputStream(sslsocket.getInputStream());
Run Code Online (Sandbox Code Playgroud)

java sockets outputstream objectoutputstream

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