小编its*_*sme的帖子

将Spring与Spark结合使用

我正在开发一个Spark应用程序,我习惯将Spring作为依赖注入框架.现在我遇到了问题,处理部分使用了Spring的@Autowired功能,但它被Spark序列化和反序列化.

所以下面的代码让我陷入困境:

Processor processor = ...; // This is a Spring constructed object
                           // and makes all the trouble
JavaRDD<Txn> rdd = ...; // some data for Spark
rdd.foreachPartition(processor);
Run Code Online (Sandbox Code Playgroud)

处理器看起来像这样:

public class Processor implements VoidFunction<Iterator<Txn>>, Serializeable {
    private static final long serialVersionUID = 1L;

    @Autowired // This will not work if the object is deserialized
    private transient DatabaseConnection db;

    @Override
    public void call(Iterator<Txn> txns) {
        ... // do some fance stuff
        db.store(txns);
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:是否甚至可以将Spring与Spark结合使用?如果没有,那么做这样的事情最优雅的方式是什么?任何帮助表示赞赏!

java spring apache-spark spark-streaming

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

java.time和JPA

类作为LocalDateTime从封装java.time基于值类.如果我有一个实体使用这样的对象作为字段,我会遇到以下"问题":不应序列化基于值的类.但是,JPA实体必须实现Serializable接口.这个悖论的解决方案是什么?不应该有人使用LocalDateTime作为JPA实体的字段吗?使用日期代替?这将是不满意的.

这个问题是一个声纳规则squid:S3437,因此项目中存在很多错误,因为我们从Date更改为LocalDateTime ...

基于价值的课程使用导致的不合规解决方案:

@Entity
public class MyEntity implements Serializable{
    @Column
    private String id; // This is fine
    @Column
    private LocalDateTime updated; // This is not ok, as LocalDateTime is a value based class
    @Column
    private Date created; // This however is fine..
}
Run Code Online (Sandbox Code Playgroud)

java jpa java-8 sonarqube java.time.instant

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

搜索Java应用程序的免费警报框架

我在这里的第一个问题:)我正在寻找一个警报框架.它应该能够做到:

  • 发送有关多个频道的警报(电子邮件,短信,实时监控)
  • 应该很容易配置.这意味着必须在没有编程技能的情况下创建警报.也许在xml-File或类似的东西.
  • 必须有关于特定警报的配置文件.此文件描述了在发生特定警报时如何做出反应.应该通知谁以及警报消息必须具有哪种格式.
  • 必须有一个我可以在Java应用程序中使用的API.

我找不到东西,能做到这一点.我已经读过,JMX Framework能够做到这一点,但我不知道如何做.我会很高兴一些想法:)

java alert frameworks

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

普通类型的Spring问题

使用泛型时,我遇到Spring问题.以下代码描述了这个问题:

public class TestInj<S> {
    S elem;
    public S getElem() {
        return elem;
    }
    public void setElem(S elem) {
        this.elem = elem;
    }
}

@Component
public class First extends TestInj<String> {
    public First() {
        setElem("abc");
    }
}

@Component
public class Second extends TestInj<Integer> {
    public Second() {
        setElem(2);
    }
}



public class BaseTest<T> {
    @Autowired
    protected TestInj<T> test;

}

@Named
public class Test extends BaseTest<String> {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("conf-spring.xml");
        context.refresh();
        Test test …
Run Code Online (Sandbox Code Playgroud)

java generics spring

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

Java Oracle Transaction

我想将数据插入到不同的表中的数据库中.由于约束,我必须按特定顺序执行此操作.这意味着,首先插入表a,然后b,然后c,....并且没有混合表.但我正在编写一个程序,它可以获取多个csv文件,并将它们导入数据库,但程序无法知道什么是正确的顺序.所以我认为交易是正确的方式,因为我听说,数据一致性必须只存在于交易结束时.但这不起作用

我的代码看起来像这样:

Connection connection = DriverManager.getConnection(url, user, pw);
connection.setAutoCommit(false);
Statement statement = connection.createStatement();
statement.addBatch("INSERT INTO c ....");
statement.addBatch("INSERT INTO a ....");
statement.addBatch("INSERT INTO b ....");
statement.addBatch("INSERT INTO a ....");
// ...
statement.executeBatch();
statement.close();
connection.commit();
Run Code Online (Sandbox Code Playgroud)

但我会得到ORA-02291(完整性约束违规):-(

java oracle transactions jdbc

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