小编Ste*_*ins的帖子

Oracle SQL WHERE子句中的(+)符号意味着什么?

可能重复:
Oracle:(+)在WHERE子句中做什么?

在Oracle数据库环境中考虑下面的简化SQL查询(虽然我不确定它是否特定于Oracle):

SELECT 
   t0.foo, t1.bar
FROM
   FIRST_TABLE t0, SECOND_TABLE t1
WHERE
   t0.ID (+) = t1.ID;
Run Code Online (Sandbox Code Playgroud)

(+)WHERE条款中的符号是什么?如果这是一个无知的新手问题,我很抱歉,但是在Google或StackOverflow上搜索非常困难......因为即使使用引号,搜索引擎也会看到一个"+"符号,似乎想把它视为某种逻辑指令.

sql oracle

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

Mockito如何捕获传递给注入的模拟对象方法的参数?

我正在尝试测试一个服务类,它在内部使用Spring AMQP连接对象.此连接对象由Spring注入.但是,我不希望我的单元测试实际上与AMQP代理通信,因此我使用Mockito注入连接对象的模拟.

/** 
 * The real service class being tested.  Has an injected dependency. 
 */ 
public class UserService {

   @Autowired
   private AmqpTemplate amqpTemplate;

   public final String doSomething(final String inputString) {
      final String requestId = UUID.randomUUID().toString();
      final Message message = ...;
      amqpTemplate.send(requestId, message);
      return requestId;
   }
}

/** 
 * Unit test 
 */
public class UserServiceTest {

   /** This is the class whose real code I want to test */
   @InjectMocks
   private UserService userService;

   /** This is a dependency of the real …
Run Code Online (Sandbox Code Playgroud)

java spring unit-testing mockito

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

Maven"shaded"JAR在文件名中以"original"为前缀

我正在使用"shade"Maven2插件来构建一个单独的JAR,并将所有Java依赖项捆绑在一起.相关部分pom.xml非常简单:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>1.4</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <finalName>${project.artifactId}-${project.version}-SHADED</finalName>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>com.mypackage.MyClass</mainClass>
                    </transformer>
                </transformers>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

但是,构建结果很奇怪.看来这两个文件实际上是由这个Maven插件创建的:

myartifact-1.0.0-SHADED.jar  (zero bytes)
original-myartifact-1.0.0-SHADED.jar  (10 MB)
Run Code Online (Sandbox Code Playgroud)

带有前缀"original"的JAR文件已正确构建,并且运行正常.我想我可以重命名它以剥去那个前缀,并继续我的快乐方式.

但是,我非常好奇这里的"阴影"插件可能会发生什么.看起来"原始"文件是临时工作空间类型的东西,打算在进程结束时重命名,并且最终重命名根本不会完成.但是,没有明显的解释(即文件系统权限等).有没有人见过这个?

java maven-2

35
推荐指数
3
解决办法
4万
查看次数

是否可以发布ASP.NET 5应用程序,以便目标计算机不需要安装DNX?

来自维基的主要"aspnet"GitHub回购:

" DNX是一个SDK,包含构建和运行应用程序所需的所有位,包括Core CLR中的CLR.它可以与您的应用程序一起进行bin部署...... ".

我对这实际意味着什么有点困惑.基于此描述以及我在Microsoft公告和博客文章中看到的其他评论,您似乎可以使用ASP.NET 5应用程序并创建一个没有外部依赖关系的自包含bundle.该捆绑包将包含您的代码,DNX运行程序,~11兆字节的CoreCLR以及您可能使用的任何其他NuGet依赖项."运行应用程序所需的所有位",准备放到干净的平板目标机器上.

但是,当我使用时dnu publish,这不是发生的事情.生成的包包含我的代码,以及我实际使用的标准库部分的DLL.然而,它并没有拉动整个CoreCLR ......而且肯定不会引入DNX.runproject.json文件中的命令变成了一个如下所示的run.cmd批处理文件:

@"dnx.exe" --appbase "%~dp0approot\src\ConsoleApplication" Microsoft.Framework.ApplicationHost run %*
Run Code Online (Sandbox Code Playgroud)

...建议DNX预计已经安装在目标系统上,在此捆绑之外.

我错过了一些基本的东西吗?如果您需要在目标系统上安装DNX,那么我不确定这种方法有什么优势.是否可以采取额外步骤,发布具有DNX和CoreCLR完全烘焙和自包含的捆绑包?

我看到它dnu publish有一个可选--native参数,但我不确定这是否相关.该参数希望您指定运行时.当我使用"clr"时,我收到错误消息" Native image generation is only supported for .NET Core flavors".当我使用"coreclr"时,我得到了这个丑陋的堆栈跟踪:

C:\Users\Steve\Desktop\ConsoleApplication>dnu publish --native --runtime active
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Framework.Project, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.Framework.Project, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' ---> …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net asp.net-core

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

How to package an Apache CXF application into a monolithic JAR with the Maven "shade" plugin

I am writing a console-based Java application, intended to be run by cron in a batch-processing manner. The batch-processing application makes calls to a SOAP web service, using the Apache CXF framework for JAX-WS.

To make deployment easier, and to prevent CLASSPATH issues, I would like to bundle up the application (with all its dependencies) into a single monolithic JAR file... using the "shade" plugin for Maven.

My application works just fine when I run it from my Eclipse …

java maven-2 cxf maven

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

如何在基于Docker的微服务中管理每个环境数据?

在微服务架构中,我很难掌握如何管理特定于环境的配置(例如,数据库或消息代理的IP地址和凭据).

假设您有三个微服务("A","B"和"C"),每个都由不同的团队拥有和维护.每个团队都需要一个团队集成环境......他们使用微服务的最新快照,以及所有依赖微服务的稳定版本.当然,您还需要QA /登台/制作环境.大图的简化视图如下所示:

"微服务A"团队环境

  • 微服务A(SNAPSHOT)
  • 微服务B(STABLE)
  • 微服务C(STABLE)

"微服务B"团队环境

  • 微服务A(稳定)
  • 微服务B(SNAPSHOT)
  • 微服务C(STABLE)

"微服务C"团队环境

  • 微服务A(稳定)
  • 微服务B(STABLE)
  • 微服务C(SNAPSHOT)

质量保证/分期/生产

  • 微服务A(稳定,释放等)
  • 微服务B(稳定,释放等)
  • 微服务C(稳定,释放等)

这是很多部署,但这个问题可以通过持续集成服务器解决,也许像Chef/Puppet /等.在真正困难的部分是每个微服务需要特别在它部署的每个地方某些环境中的数据.

例如,在"A"团队环境中,"A"需要一个地址和一组凭据才能与"B"交互.然而,随着在"B"团队环境, "A"的使用,必须有不同的地址和凭据进行交互的是 "B"的部署.

此外,随着您越来越接近生产,像这样的环境配置信息可能需要安全限制(即只有某些人能够修改甚至查看它).

那么,使用微服务架构,如何维护特定于环境的配置信息并使其可供应用程序使用?我想到了一些方法,尽管它们都有问题:

  • 让构建服务器在构建时将它们烘焙到应用程序中 - 我想您可以创建每个环境属性文件或脚本的存储库,并让每个微服务的构建过程伸出并拉入相应的脚本(您也可以有一个单独的,有限的访问回购生产的东西).但是,你需要大量的脚本.对于可以部署微服务的每个地方的每个微服务,基本上都是单独的.
  • 将它们烘焙到每个环境的基础Docker镜像中 - 如果构建服务器将您的微服务应用程序放入Docker容器中作为构建过程的最后一步,那么您可以为每个环境创建自定义基本映像.基本映像将包含一个shell脚本,用于设置所需的所有环境变量.您的Dockerfile将设置为在启动应用程序之前调用此脚本.这与上一个要点有类似的挑战,因为现在你正在管理大量的Docker镜像.
  • 在运行时从某种注册表中提取环境信息 - 最后,您可以将每个环境的配置存储在Apache ZooKeeper(甚至只是一个普通的数据库)之类的内容中,并让您的应用程序代码在运行时将其拉入它启动了.每个微服务应用程序都需要一种方法来告诉它所处的环境(例如启动参数),以便它知道从注册表中获取哪组变量.这种方法的优点是,现在您可以从团队环境到生产一直使用完全相同的构建工件(即应用程序或Docker容器).另一方面,您现在将拥有另一个运行时依赖项,并且您仍然必须管理注册表中的所有数据.

人们如何在微服务架构中解决这个问题?听起来这似乎是常见的事情.

architecture deployment configuration docker microservices

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

NetBeans是否在导航器视图中为打开目录提供了"全部折叠"快捷方式?

NetBeans 在"视图"菜单下有一个有用的(对我来说!)功能,称为"带视图的同步编辑器".顾名思义,切换此选项将导致导航器视图在编辑器中打开时直接跳转到文件.

我通常更喜欢用普通的"Ctrl + Shift + 1"快捷键来手动跳转到文件.但是,缺点是在编辑了几个文件之后,导航树就会出现多个打开的目录.

Eclipse有类似的功能,但它有其导航视图顶部的"折叠所有"按钮恢复......事情不必滚动围绕一个单一的点击.NetBeans是否有任何类似的机制来折叠打开的目录?也许一个记录不好的键盘快捷键埋在那里或什么?

java ide netbeans

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

是否有一种纯粹的基于Promise的方法来映射/连接集合?

一般是异步与Q

我正在学习Node.js开发,并试图围绕管理异步"回调地狱"的策略.我探索的两个主要策略是Caolan McMahon的异步模块和Kris Kowal的基于承诺的Q模块.

许多其他人一样,我仍然在努力理解何时应该使用其中一个.但总的来讲,我发现承诺和基于Q-代码要稍微更直观,所以我在这个方向被移动.

通常映射/连接集合

但是,我仍然坚持使用异步模块的功能来管理集合.来自Java和Python背景,大部分时间我使用集合时,逻辑如下所示:

  1. 初始化一个新的空集合,用于存储结果.
  2. 使用旧集合执行for-each循环,对每个元素应用一些逻辑并将其结果推送到新的空集合中.
  3. 当for-each循环结束时,继续使用新集合.

在客户端JavaScript中,我已经习惯于使用jQuery的map()函数 ...传递步骤#2逻辑,并将步骤#3结果作为返回值.感觉像是一样的基本方法.

使用async和Q映射/连接集合

节点端异步模块具有类似的mapconcat函数,但它们不会在原始作用域级别返回连接结果.你必须转而进入回调地狱才能使用结果.例:

var deferred = Q.defer();

...

var entries = [???]; // some array of objects with "id" attributes

async.concat(entries, function (entry, callback) {
    callback(null, entry.id);
}, function (err, ids) {
    // We now have the "ids" array, holding the "id" attributes of all items in the "entries" array.
    ...
    // Optionaly, perhaps …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous node.js promise q

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

当一些行长到足以导致"bufio.Scanner:token too long"错误时,如何在Go中逐行读取文本文件?

我有一个文本文件,其中每一行代表一个JSON对象.我正在使用这样的简单for循环在Go中处理此文件:

scanner := bufio.NewScanner(file)
for scanner.Scan() {
   jsonBytes = scanner.Bytes()
   var jsonObject interface{}
   err := json.Unmarshal(jsonBytes, &jsonObject)

   // do stuff with "jsonObject"...

}
if err := scanner.Err(); err != nil {
   log.Fatal(err)
}
Run Code Online (Sandbox Code Playgroud)

当此代码到达具有特别大的JSON字符串(~67kb)的行时,我收到错误消息"bufio.Scanner:token too long".

是否有一种简单的方法可以增加可读的最大行数NewScanner?或者是否有另一种方法可以完全采取,当需要读取太大NewScanner但不知道通常不安全的线路?

go

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

实现一个不仅仅设置变量的Scala构造函数

大多数情况下,类的构造函数只会获取其参数值并使用它们来设置实例变量:

// Java
public class MyClass {
   private int id;

   public MyClass(int id) {
      this.id = id;
   }
}
Run Code Online (Sandbox Code Playgroud)

所以我理解了Scala默认构造函数语法的效率......只需在类名旁边的括号中声明一个变量列表:

// Scala
class MyClass(id: int) {
}
Run Code Online (Sandbox Code Playgroud)

但是,除了简单地将参数插入实例变量之外,那些需要构造函数实际执行STUFF的情况呢?

// Java
public class MyClass {
   private String JDBC_URL = null;
   private String JDBC_USER = null;
   private String JDBC_PASSWORD = null;

   public MyClass(String propertiesFilename) {
      // Open a properties file, parse it, and use it to set instance variables.
      // Log an error if the properties file is missing or can't be …
Run Code Online (Sandbox Code Playgroud)

java scala

15
推荐指数
2
解决办法
5868
查看次数