小编sma*_*sma的帖子

Enums中的业务逻辑?

在Enums中放置任何类型的业务逻辑是否被视为良好做法?不是真正强烈的逻辑,而是更像是方便实用的方法.例如:

public enum OrderStatus {

 OPEN, OPEN_WITH_RESTRICTIONS, OPEN_TEMPORARY, CLOSED;


 public static boolean isOpenStatus(OrderStatus sts) {
      return sts == OPEN || sts == OPEN_WITH_RESTRICTIONS || sts == OPEN_TEMPORARY;
 }

}
Run Code Online (Sandbox Code Playgroud)

java enums business-logic

7
推荐指数
3
解决办法
3585
查看次数

Shiro处于多线程环境中

我理解Shiro SecurityUtils.getSubject()工作的基本方法是返回绑定到当前正在执行的线程的主题.但是,这似乎与像Tomcat这样使用线程池来处理请求的servlet容器不一致.

如果Tomcat说使用ThreadA来处理请求,那么任何调用都SecurityUtils.getSubject()应该可以正常工作.但是,一旦选择了ThreadB,用户就会丢失,getSubject返回null并且isAuthenticated现在为false.这是即使用户仍然登录.

我已在我的申请中证实了这一点.我正在使用Shiro Core 1.2,并注意到当我浏览我的应用程序时,我的用户只是奇迹般地未经验证.如果我查看日志,只要使用不同的线程来处理请求,问题就会发生.

那么,我是否错误地配置了Shiro?似乎'当前用户'应该被绑定到比当前线程更持久的东西.我希望它是基于会话的.我知道Shiro有会话管理,但在我发现的所有示例中,它表示通过调用来获取当前用户getSubject,这会查看ThreadContext.我错过了什么吗?

java security tomcat servlets shiro

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

Git列出不存在的遥控器

我最近在我的Git repo配置文件中对我的远程存储库进行了一些更改.我重命名了远程名称,将我的原点更改为另一个远程仓库并重命名我的旧源.

例如,我之前有这个:

[remote "origin"]
   url =  blah blah

[remote "future"]
   url = blah blah
Run Code Online (Sandbox Code Playgroud)

我进去改变它们看起来像这样:

# formerly the origin
[remote "old-origin"]

# formerly the future repo
[remote "origin']
Run Code Online (Sandbox Code Playgroud)

但现在,当我打字时git branch -a,我看到旧的'未来'遥控器上列出的分支:

remotes/origin/HEAD
remotes/origin/branch1
remotes/origin/branch2
remotes/future/branch1
remotes/future/branch2
remotes/old-origin/master
remotes/old-origin/branch3
Run Code Online (Sandbox Code Playgroud)

我运行了修剪以及获取等等,但该列表不会更新.我在配置文件中搜索了"future",但没有任何结果.是否有任何命令可以运行以刷新此列表并停止查看该不存在的遥控器?

git git-config git-remote git-branch

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

在Protractor中监听浏览器事件

有没有办法在Protractor测试中将事件监听器附加到浏览器事件?

我知道Protractor是作为Node程序运行的,但我很好奇是否有人使用像browserevent这样的Node包来完成这项工作.

如果是这样,寻找任何例子.

javascript addeventlistener selenium-webdriver protractor

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

Angular,显示任何资源处于挂起状态时的加载

我已经写代码来显示装载机格,当任何资源是在之前,无论它是通过$ http.get或路由\ NG-观点得到.如果我变坏了,我不仅仅是信息......

flowHandler服务:

app.service('flowHandler', function(){
    var count = 0;
    this.init = function() { count++ };
    this.end = function() { count-- };
    this.take = function() { return count };
});
Run Code Online (Sandbox Code Playgroud)

MainCTRL附加到 <body ng-controller="MainCTRL">

app.controller("MainCTRL", function($scope, flowHandler){
    var _this = this;
    $scope.pageTitle = "MainCTRL";
    $scope.menu = [];
    $scope.loader = flowHandler.take();

    $scope.$on("$routeChangeStart", function (event, next, current) {
        flowHandler.init();
    });

    $scope.$on("$routeChangeSuccess", function (event, next, current) {
        flowHandler.end();
    });

    updateLoader = function () {
        $scope.$apply(function(){
            $scope.loader = flowHandler.take();
        });

    };

    setInterval(updateLoader, 100);

});
Run Code Online (Sandbox Code Playgroud)

和一些测试控制器通过$ …

angularjs angular-services

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

重载可变参数模板的固定参数

是否可以通过在函数参数包之前更改固定参数的数量来覆盖可变参数模板?例如:

#include <iostream>

template <typename ...Args>
void foo(std::string, std::string, std::string, Args...) 
{ 
  std::cout << "THREE STRINGS\n"; 
}

template <typename ...Args>
void foo(std::string, std::string, Args...) 
{ 
  std::cout << "TWO STRINGS\n"; 
}

int main() {
  foo("key", "msg", "data", 1);
}
Run Code Online (Sandbox Code Playgroud)

运行它会导致第二个foo被调用,但我希望第一个被调用.有没有更好的方法来重载此功能?

c++ variadic-functions variadic-templates c++14

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

任何人都可以通过这种凉亭安装角度路线来识别发生了什么事吗?

bower not-cached    git://github.com/angular/bower-angular-route.git#1.4.6
bower resolve       git://github.com/angular/bower-angular-route.git#1.4.6
bower ENOTDIR       ENOTDIR: not a directory, mkdir '/var/folders/zq/2wb7gvvx2vz73y2g_b3kfm8w0000gn/T/daniellopez/bower'

Stack trace:
Error: ENOTDIR: not a directory, mkdir '/var/folders/zq/2wb7gvvx2vz73y2g_b3kfm8w0000gn/T/daniellopez/bower'
    at Error (native)

Console trace:
Error
    at StandardRenderer.error (/usr/local/lib/node_modules/bower/lib/renderers/StandardRenderer.js:82:37)
    at Logger.<anonymous> (/usr/local/lib/node_modules/bower/bin/bower:110:22)
    at emitOne (events.js:77:13)
    at Logger.emit (events.js:169:7)
    at Logger.emit (/usr/local/lib/node_modules/bower/node_modules/bower-logger/lib/Logger.js:29:39)
    at /usr/local/lib/node_modules/bower/lib/commands/index.js:48:20
    at _rejected (/usr/local/lib/node_modules/bower/node_modules/q/q.js:844:24)
    at /usr/local/lib/node_modules/bower/node_modules/q/q.js:870:30
    at Promise.when (/usr/local/lib/node_modules/bower/node_modules/q/q.js:1122:31)
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/bower/node_modules/q/q.js:788:41)
System info:
Bower version: 1.6.5
Node version: 4.2.1
OS: Darwin 14.4.0 x64
Run Code Online (Sandbox Code Playgroud)

npm angularjs angular-route-segment

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