问题列表 - 第144716页

春天的线程安全会话bean的最佳实践?

我想知道什么是使会话bean线程安全的最佳实践.

我们假设我有这个会话bean及其服务:

@Component
@Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)
class Cart {

    private HashSet<Item> items = new HashSet<Item>();

    private int counter = 0;

    public HashSet<Item> getItems() {
        return items;
    }

    public int getCounter() {
        return counter;
    }

}

@Service
class CartService {

    @Autowired
    private Cart cart;

    public void addItem(Item item) throws FullException {
        if (cart.getCounter() > 1234) {
            throw new FullException();

        }
        cart.getItems().add(item);
    }

}
Run Code Online (Sandbox Code Playgroud)

上面的代码不是线程安全的,并且当多个线程(同一会话,例如异步Ajax请求)执行时,将导致问题CartService.addItem(Item).

我想我不是第一个遇到这个问题的人,但是我的研究并没有带给我最佳实践.

我可以做的最糟糕的事情是同步addItem(),因为CartService由多个会话共享.在购物车中同步在CartService.addItem()我看来同样糟糕,因为Cart是一个代理bean.我理解,因为所有会话仍然会在同一个对象上同步.

一种可接受的解决办法似乎是在同步块Cart.getItems()CartService.addItem():

@Service
class CartService …
Run Code Online (Sandbox Code Playgroud)

java session spring-mvc thread-safety

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

无法在Eclipse Kepler中安装PMD

我使用Eclipse市场在Eclipse Kepler中安装了PMD.但是我在安装后无法访问它.

当我转到Window→Preferences并搜索PMD时,我没有得到任何结果.

是否有其他插件可用于源代码清理?
或者:在开普勒安装PMD需要做些什么?

谢谢

eclipse pmd eclipse-kepler

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

IOS游戏中心GKLocalPlayerListener

我试图在回合制游戏中实现一个事件监听器,这样玩家可以在轮到他或者被朋友邀请时接收.在IOS 7中不推荐使用GKTurnBasedEventHandler,我在文档中读到了我应该使用的GKLocalPlayerListener; 但这是它的延伸.是否有人使用过它,因为任何地方都没有信息.

这是我以前尝试过的,它不起作用.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
    [localPlayer authenticateWithCompletionHandler:^(NSError *error)
     {
         if (localPlayer.isAuthenticated)
         { 
             GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
             [localPlayer registerListener:self];
         }
     }];

    return YES;
}

-(void)handleInviteFromGameCenter:(NSArray *)playersToInvite
{
    NSLog(@"test");
}

- (void)player:(GKPlayer *)player receivedTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActive
{
    NSLog(@"test");
}
Run Code Online (Sandbox Code Playgroud)

ios game-center gkturnbasedmatch

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

如何从iOS中的Yahoo OAuth集成获取访问令牌?

在哪里输入该代码 我关注此链接:https://github.com/yahoo/yos-social-objc用于检索雅虎联系人.

在提供所有凭证(即密钥,消费者密钥,应用程序ID)之后,它将进入Safari浏览器进行登录.但登录后,它显示此消息:

完成雅虎的分享!使用xxxx信息,将代码xxxx输入xxxx

所以,我没有得到我应该输入此代码的地方?它将如何重定向到我的应用程序.

Plist中缺少什么我应该在Plist中添加什么?

任何帮助将不胜感激.

iphone oauth ios yahoo-api ios6

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

法官Python str包括中文

我想定义一个函数,检查一个字符串是否包含在中文中.例如,check_contain_chinese("中国"),它返回True.check_contain_chinese('xx中国'),它返回True,check_contain_chinese("xxx"),返回False.有人可以给我一些建议吗?我是大一新生..

python

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

Symfony2 + Doctrine:多个条件使用数组

我有一个实体,我正在尝试在其存储库中创建以下函数

function customGet(array $criteria)
{
     //WHAT I'm trying to do:
     //SELECT *
     //FROM mytable
     //LEFT JOIN anothoer table
     //WHERE criteria1 = value1 AND criteria2 = value2 ...etc

     $q = $this
        ->createQueryBuilder('u')
        ->select('u, g')
        ->leftJoin('u.theOtherTable', 'g');
        //Where here
        ->getQuery();
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做where子句?

php symfony doctrine-orm

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

ios7上的UICollectionViewData validateLayoutInRect中的断言失败

UICollectionViewData validateLayoutInRectiOS7上的断言失败.

我试图UICollectionView使用for循环逐个删除所有项目; 我在下面发布了我的代码.我删除了UICollectionView使用的项目deleteItemsAtIndexPaths.它在iOS6上完美运行,但在iOS7中崩溃,但有以下异常:

UICollectionViewData中的断言失败validateLayoutInRect

collectionArray从那时开始self.collectionView逐个删除对象indexPath.当我删除第4个对象时,它会Assertion failure在iOS7上引发.我在这里使用performBatchUpdates.

请帮我在iOS7中获得正确的结果.分享正确的代码.提前致谢.

try  {    
    for (int i=count-1; i>=0; i--)  {  
        [self.collectionView performBatchUpdates:^(void){  
            [collectionArray removeObjectAtIndex:i]; // First delete the item from you model   
            [self.collectionView deleteItemsAtIndexPaths:@[[NSIndexPath indexPathForRow:i inSection:0]]];  
        } completion:nil];
        [self.collectionView reloadData];
    }
}
@catch (NSException *exception) {
}
@finally {
}
Run Code Online (Sandbox Code Playgroud)

objective-c ios uicollectionviewlayout ios7 xcode5

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

无法对 PLSQL 语句执行提取:下一个

存储过程

CREATE OR REPLACE
PROCEDURE ADDITION
  (
    A IN NUMBER ,
    B IN NUMBER ,
    C OUT NUMBER )
AS
BEGIN
  C := A+B;
  dbms_output.put_line(c);
END ADDITION;
Run Code Online (Sandbox Code Playgroud)

JDBC程序

 cstmt = conn.prepareCall("BEGIN addition(?, ?,?); END;");
  cstmt.setInt(1, 10);
  cstmt.setInt(2, 85);
  cstmt.registerOutParameter(3, java.sql.Types.INTEGER);
  ResultSet rs = cstmt.executeQuery();
  while(rs.next()){
  int c =rs.getInt("c");
    System.out.println(c);
  }
Run Code Online (Sandbox Code Playgroud)

执行上述程序时出现错误。

厄尔:

java.sql.SQLException: Cannot perform fetch on a PLSQL statement: next
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:147)
    at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:192)
    at stored_procedure.main(stored_procedure.java:32)
Run Code Online (Sandbox Code Playgroud)

java stored-procedures jdbc

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

如何使用sed,awk或其他linux命令组合来自两个文件的行

我有两个文件:

FILE1.TXT

苹果

橙子

香蕉

FILE2.TXT

红色

白色

蓝色

我想最终得到的是:

file3.txt

苹果

红色

橙子

白色

香蕉

蓝色

任何帮助将不胜感激!

linux bash awk sed

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

如何在jqgrid中添加新的按钮/图像列

我在ASP.net MVC Web应用程序中使用JQgrid.

我能够通过使用添加名为edit的新按钮列 formatters

但是,问题是我无法获得单击按钮的行中的列值.

例如,如果我在第4行单击按钮编辑(新添加),我将需要获取该特定行的第一列的值.

我需要这个,因为我想重定向到具有该值的另一​​个页面并在那里进行编辑.

我无法获取该值并向其添加javascript.

请使用任何代码示例帮助解决此问题.

javascript c# asp.net-mvc button jqgrid

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