小编Joh*_*han的帖子

在Ubuntu上从JDK 1.7迁移到JDK 1.8

我在UBUNTU.目前安装的JDK版本是:

java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
Run Code Online (Sandbox Code Playgroud)

正在安装的配置是:

sudo update-alternatives --config java
There is only one alternative in link group java 
(providing /usr/bin/java):     /usr/lib/jvm/java-7-oracle/jre/bin/java
Run Code Online (Sandbox Code Playgroud)

我下载了JDK 1.8的最新tar.gz存档.

如何从tar.gz轻松安装JDK 1.8覆盖/卸载当前安装的JDK 1.7?甚至没有明确使用tar.gz.

java linux ubuntu java-8

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

什么是传递Maven依赖?

这个问题即将阐明传递依赖是什么以及它在Maven中如何在非常高的层次上运行.

我的定义:在A - > B - > C之类的依赖树中,C是A的传递依赖.假设已范围编译.

如果c ^具有范围编译,则宣告作为依赖性足以建立使用Maven.但是,如果Ç已范围提供然后,当Maven构建一个,该建筑将不会自动编译一个Ç除非一个声明ç它的依赖中.

它是否正确?

dependencies maven

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

@RunWith(PowerMockRunner.class)vs @RunWith(MockitoJUnitRunner.class)

在通常使用@Mock@InjectMocks注释的模拟中,测试中的类应该运行@RunWith(MockitoJUnitRunner.class).

@RunWith(MockitoJUnitRunner.class)
public class ReportServiceImplTestMockito {

     @Mock 
     private TaskService      mockTaskService;

     @InjectMocks 
     private ReportServiceImpl service;

         // Some tests
}
Run Code Online (Sandbox Code Playgroud)

但在某些例子中,我看到@RunWith(PowerMockRunner.class)被使用:

@RunWith(PowerMockRunner.class)
public class Tests {
  @Mock
  private ISomething mockedSomething;

  @Test
  public void test1() {
    // Is the value of mockedSomething here
  }

  @Test
  public void test2() {
    // Is a new value of mockedSomething here
  }
}
Run Code Online (Sandbox Code Playgroud)

有人可以指出它的差异是什么时候我想用一个而不是另一个?

java mocking mockito powermockito

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

默认 JAVA,$JAVA_HOME 与 sudo update-alternatives --config java

我在 Ubuntu 上,我在我的~/.bashrc文件中设置了以下内容:

export JAVA_HOME=/opt/jdk1.8.0_91
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

进而:

echo $JAVA_HOME
>/opt/jdk1.8.0_91

java -version
>java version "1.8.0_91"
>Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
>Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud)

乍一看,该命令sudo update-alternatives --config java并未显示我手动安装的 Java,因此我将其安装到带有sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_91 1.

现在,该命令sudo update-alternatives --config java会下拉所有正在安装的 Java 版本的列表,如下所示:

0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      auto mode
1            /opt/jdk1.7.0_51/bin/java                        1         manual mode
* 2            /opt/jdk1.8.0_91                                 1         manual mode
3            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
4            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071 …
Run Code Online (Sandbox Code Playgroud)

java unix ubuntu command-line environment-variables

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

带有HBASE的Spark和带有HDFS的Spark

我知道HBASE是一个柱状数据库,它将表的结构化数据按列而不是按行存储到HDFS中.我知道Spark可以从HDFS读/写,并且有一些用于Spark的HBASE连接器现在也可以读写HBASE表.

问题:

1)在HBASE之上将Spark分层而不是单独使用HBASE带来了哪些附加功能?它只取决于程序员的能力,还是有任何性能原因可以做到这一点?Spark有什么东西可以做,HBASE完全不能做?

2)从上一个问题出发,何时应该在HDFS和SPARK之间添加HBASE而不是直接使用HDFS?

hadoop hbase hdfs apache-spark

7
推荐指数
2
解决办法
5433
查看次数

@RequestParam,名称与值属性

我正在阅读Spring MVC 中的注释文档@RequestParam.

名称属性有什么区别?

文件说:

value:name()的别名.

name:要绑定的请求参数的名称.

名称()的别名是什么意思?

假设你有:

http://localhost:8080/springmvc/hello/101?param1=10&param2=20

public String getDetails(
    @RequestParam(value="param1", required=true) String param1,
    @RequestParam(value="param2", required=false) String param2){
        ...
}
Run Code Online (Sandbox Code Playgroud)

例如,value="param1"是要绑定的request-parameter的名称,而是要绑定String param1的对象.

我怎么能name在这里使用属性?

spring spring-mvc

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

JMS 会话,“交易”和“自动确认”

JMS 会话到底是什么意思?

JMS 会话可以或不可以“交易”是什么意思?

JMS 会话可以带有或不带有“自动确认”是什么意思?

jms jmstemplate spring-jms jms-topic

7
推荐指数
2
解决办法
9786
查看次数

目标文件夹vs本地存储库

我知道Maven包含了本地存储库中构建的结果(工件安装在其下~/.m2/repository/),但它也会在target旁边的文件夹中输出已编译的类src.

本地存储库中的内容与target文件夹中的内容之间有什么区别吗?

maven

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

在Spring Boot中禁用@WebMvcTest的Spring Security配置类

最近我使用以下类将Spring Security添加到Spring Boot项目中:

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MySecurityConfig {
}
Run Code Online (Sandbox Code Playgroud)

因此,默认情况下,我的所有URL现在都受到身份验证和自生密码的保护.

问题是我用于对控制器进行单元测试的@WebMvcTest类中的所有测试:

@RunWith(SpringRunner.class)
@WebMvcTest(SomeController.class)
public class SomeControllerTest {...}
Run Code Online (Sandbox Code Playgroud)

由于缺乏授权,现在到处都失败了.

问题:我可以告诉@Test方法忽略授权,以便它们像以前一样继续成功吗?

如何防止在 特定的@WebMvcTest单元测试类中选择@EnableWebSecurity配置类?

我希望已经存在的测试能够继续进行并稍后单独测试身份验证功能.

到目前为止,我已尝试在测试类中使用嵌套的配置类,以排除安全配置:

@RunWith(SpringRunner.class)
@WebMvcTest(SomeController.class)
public class SomeControllerTest {

    @Configuration
    @EnableAutoConfiguration(exclude = { SecurityAutoConfiguration.class})
    static class ContextConfiguration { }

 ....}
Run Code Online (Sandbox Code Playgroud)

但似乎没有用.

注意:我使用的是Spring Boot 1.5.8

java spring spring-mvc spring-security spring-boot

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

Hadoop 中的 setJarByClass()

在 Hadoop 算法的驱动程序方法中的某个时刻,我们将作业链接到设置为 Mapper 和Reducer 的类的引用。例如:

        job.setMapperClass(MyMapper.class);
        job.setReducerClass(MyReducer.class);
Run Code Online (Sandbox Code Playgroud)

通常驱动程序方法是main映射器和减速器作为内部静态类实现。

假设MyMapper.classMyReducer.class是 的内部静态类,MyClass.class并且驱动程序方法是 的 main MyClass.class。有时我会看到在上面两行之后添加了以下行:

        job.setJarByClass(Myclass.class);
Run Code Online (Sandbox Code Playgroud)

此配置步骤的含义是什么以及何时有用或强制?

就我而言(我有单节点集群安装),如果删除此行,我可以继续正确运行作业。为什么?

java hadoop jar

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