小编Nat*_*hes的帖子

如何将MVC安装到Visual Studio 2008中?

有没有人有任何关于在Visual Studio 2008中设置第一个MVC项目的基本说明?我刚刚安装了Visual Studio 2008,我发现了有关如何设置编程环境的各种说明,但它非常复杂,无法判断我所采用的路由是否是最佳路由.

如果我想开始开发MVC项目,我需要做些什么来实现它?

我对"Web客户端指南"说明感到非常困惑.例如,他们没有说明放置Microsoft.Web.Mvc.dll文件的位置.

asp.net-mvc visual-studio-2008 visual-studio

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

使线程以正确的方式工作

我刚刚开始学习线程并且误解了它们的工作方式.

这是我的班级:

public class MyThread extends Thread {
    private static int NUM = 0;
    private int id;

    public MyThread() {
        id = NUM++;
    }

    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            new MyThread().start(); 
        }
    }

    public void run() {
        System.out.println(id + " started");

        try {
            Process p = Runtime.getRuntime().exec("javac -version");
            p.waitFor();
        } catch (Exception e) {
            System.out.println("Call a doc!");
        }

        System.out.println(id + " finished");
    }
}

/*
Just a sidenote.
I …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading

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

在swing线程中捕获异常

如何从java swing向log4j日志发送异常?

我们已经完成了许多代码并且它做了很多:

mytable.getSelectionModel().addListSelectionListener(
        new ListSelectionListener() {
            @Override
            public void valueChanged(ListSelectionEvent e) {
                ... no try catch
            }
        });
Run Code Online (Sandbox Code Playgroud)

没有尝试/捕获.应用程序向控制台发送npe异常.我们在log4j中需要它.但是不想改变所有这些代码(像这样的100行).我们能做什么?

java swing exception-handling

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

使用JdbcTemplate时转义单引号

我们正在使用JdbcTemplate来修改我们的底层Oracle数据库.我们是通过这种方法来做到这一点的update(String sql).

代码看起来有点如下:

String name = "My name's yellow";
String sql = "update FIELD set NAME = '" + name "' where ID = 10
jdbcTemplate.update(sql);
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

java.sql.SQLException: ORA-00933: SQL command not properly ended
Run Code Online (Sandbox Code Playgroud)

问题是转义'name变量.

逃避这个角色最方便,最正确的方法是什么?

java oracle spring escaping jdbctemplate

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

在notifyAll()之前未被线程锁定的同步对象

我想有一个布尔值来通知系统某些特定服务启动的部分.

由于一些奇怪的原因,我收到了错误java.lang.IllegalMonitorStateException: object not locked by thread before notifyAll().

奇怪的是,notifyAll()位于一个synchronized块内,该块控制我调用notifyAll()的对象.

我的班级开头是这样的:

public class MyService {

    public static Boolean notifier = Boolean.valueOf(false);

    @Override
    public void start() {
        synchronized (MyService.notifier) {
            MyService.notifier = Boolean.valueOf(true);
            MyService.notifier.notifyAll();
        }
    }

    @Override
    public void stop() {
        synchronized (MyService.notifier) {
            MyService.notifier = Boolean.valueOf(false);
            MyService.notifier.notifyAll();
        }
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我正在研究一个Android应用程序.我认为它不应该影响任何事情,但是如果影响java的工作方式,我会用该注释补充问题.

如果对象锁定在同步块中,为什么会出现异常?

java multithreading synchronization synchronized java-threads

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

尝试关闭I/O对象时"找不到符号"

public static int howMany(String FileName)
{
    BufferedReader br = null;

    try
    {
        FileInputStream fis = new FileInputStream(FileName);
        DataInputStream dis = new DataInputStream(fis);
        br = new BufferedReader(new InputStreamReader(dis));
    }
    catch (FileNotFoundException e)
    {
        System.out.print("FILE DOESN'T EXIST");
    }
    finally
    {
        fis.close();
        dis.close();
        br.close();
    }


    String input;
    int count = 0;

    try
    {

        while ((input = br.readLine()) != null)
        {
            count++;
        }

    }
    catch (IOException e) 
    {
        System.out.print("I/O STREAM EXCEPTION");
    }


    return count;
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我无法关闭任何I/O对象.即使我导入了所有的I/O库(导入java.io.*;)并启动了所有对象,fis.close(),dis.close(),br.close()都给我找不到符号.

java exception-handling

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

春天的线程安全会话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
查看次数

服务和DAO层的JUNIT测试

我在项目中有分层的架构,例如Controller-> Service-> DAO。我想为服务层编写JUnit测试用例。现在,由于服务层将在内部调用DAO方法,所以为什么要在内部测试DAO层时编写不同的测试用例。

有人说,我需要使用Mockito模拟DAO方法。真的需要吗?不能在测试服务层方法时直接使用原始代码吗?

junit unit-testing junit4

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

直接在线程对象上调用Runnable的run()方法

我们不能直接在线程的对象上调用Runnable的run()方法,但是根据下面的程序,我们没有任何编译或运行时错误.为什么会这样?

public class ThreadCheck implements Runnable {

    @Override
    public void run() {
        for (int i=0; i<10; ) {
            System.out.println(++i);
        }
    }

    public static void main(String[] args) {
        Thread mythread = new Thread(new ThreadCheck());
        mythread.run();
        mythread.run();
        mythread.start();
    }   
}
Run Code Online (Sandbox Code Playgroud)

输出:1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10

java multithreading

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

运行多个外部程序

因此,我设置了一个执行外部程序(用 Fortran 77 编写)的简短脚本。我想运行该程序的多个实例,由于我的计算机上有 8 个内核,我发现的最简单的解决方案是:

import subprocess


import os


i = n

while(i<n):
  dire = "dir/Run"+str(i)+"/"
  os.chdir(dire)
  p1 = subprocess.Popen(['./mej'])
  dire = "dir/Run"+str(i+1)+"/"
  os.chdir(dire)
  p2 = subprocess.Popen(['./mej'])
  dire = "dir/Run"+str(i+2)+"/"
  os.chdir(dire)
  p3 = subprocess.Popen(['./mej'])
  dire = "dir/Run"+str(i+3)+"/"
  os.chdir(dire)
  p4 = subprocess.Popen(['./mej'])  
  dire = "dir/Run"+str(i+4)+"/"
  os.chdir(dire)
  p5 = subprocess.Popen(['./mej'])
  dire = "dir/Run"+str(i+5)+"/"
  os.chdir(dire)
  p6 = subprocess.Popen(['./mej'])
  dire = "dir/Run"+str(i+6)+"/"
  os.chdir(dire)
  p7 = subprocess.Popen(['./mej'])
  dire = "dir/Run"+str(i+7)+"/"
  os.chdir(dire)
  p8 = subprocess.Popen(['./mej'])
  dire = "/Run"+str(i+8)+"/"
  os.chdir(dire)
  p3 = subprocess.Popen(['./mej'])
  exit_codes = [p.wait() …
Run Code Online (Sandbox Code Playgroud)

python subprocess external-process

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