小编sme*_*eeb的帖子

Akka Java FSM示例

请注意:我是一名Java开发人员,不熟悉Scala(遗憾的是).我会问答案中提供的任何代码示例都将使用Akka的Java API.

我正在尝试使用Akka FSM API来建模以下超级简单的状态机.实际上,我的机器要复杂得多,但这个问题的答案将允许我推断我的实际FSM.

在此输入图像描述

所以我有两种状态:OffOn.您可以Off -> On通过拨打电话来启动机器SomeObject#powerOn(<someArguments>).您可以On -> Off通过拨打电话关闭电源SomeObject#powerOff(<someArguments>).

我想知道为了实现这个FSM,我需要哪些演员和支持类.我相信代表FSM的演员必须延伸AbstractFSM.但是什么类代表了两个州呢?什么代码公开并实现powerOn(...)powerOff(...)状态转换?一个有效的Java示例,甚至只是Java伪代码,对我来说都有很长的路要走.

java fsm actor akka

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

现代Akka DI与Guice

这里有Java 8,Guice 4.0和Akka 2.3.9.我试图弄清楚如何使用JSR330样式的@Inject注释来注释我的actor类,然后通过Guice将它们连接起来.

但实际上,我读过的每一篇文章(下面的一些例子)都使用了Scala代码示例,一个犯罪版本的Guice,或者是一个犯罪旧版本的Akka:

因此,给出以下Guice模块:

public interface MyService {
    void doSomething();
}

public class MyServiceImpl implements MyService {
    @Override
    public void doSomething() {
        System.out.println("Something has been done!");
    }
}

public class MyActorSystemModule extends AbstractModule {
    @Override
    public void configure() {
        bind(MyService.class).to(MyServiceImpl.class);
    }
}
Run Code Online (Sandbox Code Playgroud)

并且考虑FizzActor到注入了MyService:

public class FizzActor extends UntypedActor {
    private final MyService myService;

    @Inject
    public FizzActor(MyService myService) {
        super();

        this.myService = myService;
    }

    @Override
    public void onReceive(Object message) …
Run Code Online (Sandbox Code Playgroud)

java guice akka

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

Spring Boot和JPA:使用可选的远程标准实现搜索查询

这是一个SSCCE,显示研究,不是一个骗局,是关于主题!


Spring Boot REST服务和MySQL在这里.我有以下Profile实体:

@Entity
@Table(name = "profiles")
public class Profile extends BaseEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "profile_given_name")
    private String givenName;

    @Column(name = "profile_surname")
    private String surname;

    @Column(name = "profile_is_male")
    private Integer isMale;

    @Column(name = "profile_height_meters", columnDefinition = "DOUBLE")
    private BigDecimal heightMeters;

    @Column(name = "profile_weight_kilos", columnDefinition = "DOUBLE")
    private BigDecimal weightKilos;

    @Column(name = "profile_dob")
    private Date dob;

    // Getters, setters & ctor down here
}
Run Code Online (Sandbox Code Playgroud)

我也有一个ProfileController,我希望公开一个GET端点,它提供了一种非常灵活/强大的搜索方式,可以 …

jpql query-by-example querydsl spring-data-jpa spring-boot

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

功能标记与授权

我偶然发现了功能标记的概念,以及一个名为Togglz的流行的开源Java库,它引用了Martin Fowler博客文章:

基本思想是拥有一个配置文件,为您拥有的各种功能定义一系列切换.然后,正在运行的应用程序使用这些切换来决定是否显示新功能.

但对我来说,这听起来像授权:用户是否有权查看此内容?

例如,用户是否应该能够看到FizzBu​​zz菜单?

在Togglz中,我可能会像这样执行此检查:

if(MyFeatures.ShowFizzBuzz.isActive()) {
    // Show the FizzBuzz menu.
}
Run Code Online (Sandbox Code Playgroud)

比方说,Apache Shiro,我可以做同样的事情:

ShowFizzBuzzPermission showFizzBuzz = new ShowFizzBuzzPermission();
if(currentUser.isPermitted(showFizzBuzz) {
    // Show the FizzBuzz menu.
}
Run Code Online (Sandbox Code Playgroud)

再次,功能标记只是感觉像为基于角色或允许检查其完全相同的问题.

我确定我错了,但我不知道怎么回事.所以我问:功能标记与授权和角色/权限检查有何不同,具体用例是什么类型的例子?换句话说:我何时应该使用授权/角色/权限检查,何时应该使用功能标志?

java security authorization togglz featuretoggle

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

Akka:如何制作非阻塞JDBC请求

我是Akka(Java lib)的新手,我试图了解Akka是否可以用来向JDBC发出非阻塞请求,如果是这样,它会是什么样子.我相信大多数JDBC驱动程序打开一个套接字连接并阻塞创建它的线程,直到收到一个特定的JDBC响应,因此可能没有太多的Akka可以帮助到这里,但我想知道是否有办法(也许通过期货或代理?)Akka可以帮助提高性能,并允许actor系统继续处理数据,同时正在进行现有的JDBC调用并等待响应.

我发现这篇文章有点模糊/含糊不清,但听起来未来可能是关键所在.然而,该文章并没有真正展示任何有意义的(真实世界)代码示例,因此我仍然处于亏损状态.因此,假设我们有一个存储过程,sp_make_expensive_calculation通常需要10 - 30秒才能返回响应,并且通常通过JDBC调用,如下所示:

String makeExpensiveCalculationSql = "{call sp_make_expensive_calculation(?)}";
callableStatement = dbConnection.prepareCall(makeExpensiveCalculationSql);
callableStatement.setInt(1, 10);

// Could take up to 30 seconds to complete.
callableStatement.executeUpdate();

int answer = callableStatement.getString(2);
Run Code Online (Sandbox Code Playgroud)

Akka可以做任何事情来帮助这些,以便演员系统可以继续处理数据(甚至可以进行其他sp_make_expensive_calculation调用),同时我们等待第一次调用返回吗?

java jdbc akka

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

如何将GitHub wiki存储为源代码的一部分

GitHub(以及许多git服务器,如GitLab)提供项目级wiki,通常,markdown(*.md)文件存储并形成......以及......项目的wiki.

这将是太酷了,如果有你的维基存储为主要项目源的一部分的方式,所以,当你更改推送到您的主项目,你的维基改变,以及(当然,如果你更改了维基降价文件那是).

就像是:

myproject/
    src/main/resources/
    src/main/groovy/
    build.grade
    docs/
        Home.md
        About_This_Project.md
        etc.
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?我看到wiki有克隆URL和数字,这意味着它们被视为单独的Git项目.有什么办法把两者结合起来?

git markdown wiki github

9
推荐指数
3
解决办法
1356
查看次数

流浪盒添加与流浪汉初始化?

我正在阅读盒子上Vagrant文​​档而不理解它们之间的区别:

  • vagrant box add hashicorp/precise32; 与
  • vagrant init hashicorp/precise32

后者hashicorp/precise32从远程目录中获取该框,然后创建一个Vagrantfile用于旋转该框的实例.但我不明白这与box add方法有什么不同.

所以我问:这两个命令有什么区别,什么时候适合使用它们?

vagrant

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

如何使用Eclipse在调试模式下运行Dropwizard应用程序?

我想在调试模式下运行我的Dropwizard 0.8.5应用程序,其中:

  • 该应用程序使用JPDA在本地运行; 和
  • 在我的IDE(Eclipse)中,我设置断点并使用JPDA客户端连接到我本地运行的应用程序(我认为这是怎么回事)

对于服务器调试模式:

通常我的DW应用程序从命令行运行,如下所示:

java -jar build/libs/myapp.jar server src/test/resources/myapp-local.yml
Run Code Online (Sandbox Code Playgroud)

那么在调试模式(JPDA)中运行它的命令行参数是什么,或者myapp-local.yml完成此操作所需的修改是什么?


对于Eclipse/JPDA客户端

我假设我只是设置断点,然后在Eclipse中创建一个新的调试配置,但不确定使用什么参数/配置来设置此配置.有任何想法吗?

java classpath default-package dropwizard

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

在计算机视觉中,MVS做什么SFM不能做什么?

我是一名拥有大约十年企业软件工程的开发人员,我的业余爱好者引导我进入了庞大而可怕的计算机视觉领域(CV).

我不能立即明确的一件事是Structure with Motion(SFM)工具和Multi View Stereo(MVS)工具之间的分工.

具体来说,CMVS似乎是最佳的MVS工具,而Bundler似乎是最好的开源SFM工具之一.

摘自CMVS自己的主页:

您应该始终在Bundler之后和PMVS2之前使用CMVS

我想知道:为什么?!? SFM工具的理解是它们为您执行3D重建,那么为什么我们首先需要MVS工具呢?他们添加了什么价值/处理/功能,像Bundler这样的SFM工具无法解决?为什么拟议的管道:

Bundler -> CMVS -> PMVS2
Run Code Online (Sandbox Code Playgroud)

computer-vision structure-from-motion

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

使用Java API创建一个简单的1行Spark DataFrame

在Scala中,我可以从内存中的字符串创建单行DataFrame,如下所示:

val stringAsList = List("buzz")
val df = sqlContext.sparkContext.parallelize(jsonValues).toDF("fizz")
df.show()
Run Code Online (Sandbox Code Playgroud)

df.show()运行时,它输出:

+-----+
| fizz|
+-----+
| buzz|
+-----+
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试从Java类中执行此操作.显然JavaRDDs没有toDF(String)方法.我试过了:

List<String> stringAsList = new ArrayList<String>();
stringAsList.add("buzz");
SQLContext sqlContext = new SQLContext(sparkContext);
DataFrame df = sqlContext.createDataFrame(sparkContext
    .parallelize(stringAsList), StringType);
df.show();
Run Code Online (Sandbox Code Playgroud)

......但似乎仍然很短暂.现在df.show();执行时,我得到:

++
||
++
||
++
Run Code Online (Sandbox Code Playgroud)

(一个空的DF.)所以我问:使用Java API,如何将内存中的字符串读入一个只有1行1列的DataFrame中,并指定该列的名称?(这df.show()与上面的Scala相同)?

java apache-spark spark-dataframe

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