可能重复:
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上搜索非常困难......因为即使使用引号,搜索引擎也会看到一个"+"符号,似乎想把它视为某种逻辑指令.
我正在尝试测试一个服务类,它在内部使用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) 我正在使用"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文件已正确构建,并且运行正常.我想我可以重命名它以剥去那个前缀,并继续我的快乐方式.
但是,我非常好奇这里的"阴影"插件可能会发生什么.看起来"原始"文件是临时工作空间类型的东西,打算在进程结束时重命名,并且最终重命名根本不会完成.但是,没有明显的解释(即文件系统权限等).有没有人见过这个?
" DNX是一个SDK,包含构建和运行应用程序所需的所有位,包括Core CLR中的CLR.它可以与您的应用程序一起进行bin部署...... ".
我对这实际意味着什么有点困惑.基于此描述以及我在Microsoft公告和博客文章中看到的其他评论,您似乎可以使用ASP.NET 5应用程序并创建一个没有外部依赖关系的自包含bundle.该捆绑包将包含您的代码,DNX运行程序,~11兆字节的CoreCLR以及您可能使用的任何其他NuGet依赖项."运行应用程序所需的所有位",准备放到干净的平板目标机器上.
但是,当我使用时dnu publish
,这不是发生的事情.生成的包包含我的代码,以及我实际使用的标准库部分的DLL.然而,它并没有拉动整个CoreCLR ......而且肯定不会引入DNX.run
我project.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) 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 …
在微服务架构中,我很难掌握如何管理特定于环境的配置(例如,数据库或消息代理的IP地址和凭据).
假设您有三个微服务("A","B"和"C"),每个都由不同的团队拥有和维护.每个团队都需要一个团队集成环境......他们使用微服务的最新快照,以及所有依赖微服务的稳定版本.当然,您还需要QA /登台/制作环境.大图的简化视图如下所示:
"微服务A"团队环境
"微服务B"团队环境
"微服务C"团队环境
质量保证/分期/生产
这是很多部署,但这个问题可以通过持续集成服务器解决,也许像Chef/Puppet /等.在真正困难的部分是每个微服务需要特别在它部署的每个地方某些环境中的数据.
例如,在"A"团队环境中,"A"需要一个地址和一组凭据才能与"B"交互.然而,随着在"B"团队环境,即 "A"的使用,必须有不同的地址和凭据进行交互的是 "B"的部署.
此外,随着您越来越接近生产,像这样的环境配置信息可能需要安全限制(即只有某些人能够修改甚至查看它).
那么,使用微服务架构,如何维护特定于环境的配置信息并使其可供应用程序使用?我想到了一些方法,尽管它们都有问题:
人们如何在微服务架构中解决这个问题?听起来这似乎是常见的事情.
NetBeans 在"视图"菜单下有一个有用的(对我来说!)功能,称为"带视图的同步编辑器".顾名思义,切换此选项将导致导航器视图在编辑器中打开时直接跳转到文件.
我通常更喜欢用普通的"Ctrl + Shift + 1"快捷键来手动跳转到文件.但是,缺点是在编辑了几个文件之后,导航树就会出现多个打开的目录.
Eclipse有类似的功能,但它也有其导航视图顶部的"折叠所有"按钮恢复......事情不必滚动围绕一个单一的点击.NetBeans是否有任何类似的机制来折叠打开的目录?也许一个记录不好的键盘快捷键埋在那里或什么?
我正在学习Node.js开发,并试图围绕管理异步"回调地狱"的策略.我探索的两个主要策略是Caolan McMahon的异步模块和Kris Kowal的基于承诺的Q模块.
像许多其他人一样,我仍然在努力理解何时应该使用其中一个.但总的来讲,我发现承诺和基于Q-代码要稍微更直观,所以我在这个方向被移动.
但是,我仍然坚持使用异步模块的功能来管理集合.来自Java和Python背景,大部分时间我使用集合时,逻辑如下所示:
在客户端JavaScript中,我已经习惯于使用jQuery的map()函数 ...传递步骤#2逻辑,并将步骤#3结果作为返回值.感觉像是一样的基本方法.
节点端异步模块具有类似的map和concat函数,但它们不会在原始作用域级别返回连接结果.你必须转而进入回调地狱才能使用结果.例:
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) 我有一个文本文件,其中每一行代表一个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
但不知道通常不安全的线路?
大多数情况下,类的构造函数只会获取其参数值并使用它们来设置实例变量:
// 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 ×5
maven-2 ×2
.net ×1
architecture ×1
asp.net ×1
asp.net-core ×1
asynchronous ×1
c# ×1
cxf ×1
deployment ×1
docker ×1
go ×1
ide ×1
javascript ×1
maven ×1
mockito ×1
netbeans ×1
node.js ×1
oracle ×1
promise ×1
q ×1
scala ×1
spring ×1
sql ×1
unit-testing ×1