小编Sha*_*mik的帖子

使用Spring 3.0,我可以创建一个可选的路径变量吗?

使用Spring 3.0,我可以有一个可选的路径变量吗?

例如

@RequestMapping(value = "/json/{type}", method = RequestMethod.GET)
public @ResponseBody TestBean testAjax(
        HttpServletRequest req,
        @PathVariable String type,
        @RequestParam("track") String track) {
    return new TestBean();
}
Run Code Online (Sandbox Code Playgroud)

在这里,我想/json/abc/json称为相同的方法.
一个明显的解决方法是声明type为请求参数:

@RequestMapping(value = "/json", method = RequestMethod.GET)
public @ResponseBody TestBean testAjax(
        HttpServletRequest req,
        @RequestParam(value = "type", required = false) String type,
        @RequestParam("track") String track) {
    return new TestBean();
}
Run Code Online (Sandbox Code Playgroud)

然后/json?type=abc&track=aa/json?track=rr将工作

rest spring

175
推荐指数
6
解决办法
14万
查看次数

使用CSS使跨度不可点击

<html>
    <head>
    </head>
    <body>
        <div>
            <a href="http://www.google.com">
                <span>title<br></span>
                <span>description<br></span>
                <span>some url</span>
            </a>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我是CSS的新手,我有一个像上面这样的简单案例.我想使"标题"和"一些网址"可点击,但希望将描述视为不可点击.有没有办法通过在跨度上应用一些CSS来做到这一点,以便在该跨度内的任何内容,它是不可点击的.我的约束是,我不想改变div的结构,而只是应用css我们可以创建一个在锚标签内的span,而不是可点击的?

css

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

使用Junit的Spring Test会话范围bean

我有一个会话范围的bean,它保存每个http会话的用户数据.我想编写一个Junit测试用例来测试会话范围的bean.我想编写测试用例,以便它可以证明每个会话都会创建bean.任何指针如何编写这样的Junit测试用例?

junit spring spring-mvc spring-test

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

Java的fork-and-join线程池是否适合执行IO绑定任务?

在我的应用程序中,我必须通过执行许多network-io绑定任务来解决问题,有时一个io绑定任务并分成更小的io绑定任务.这些任务目前正在使用Java的标准线程池机制执行.我想知道我是否可以转向fork-and-join框架?但问题是,forkandjoin框架通常用于解决io绑定操作或CPU绑定吗?我假设它们主要用于CPU绑定操作,因为fork-and-join框架利用工作窃取技术来利用多核处理器,但如果我将它用于IO绑定任务,会不会有任何不利影响?

java fork-join

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

Java多线程原子引用赋值

我有一个缓存,我使用simeple HashMap实现.喜欢 -

HashMap<String,String> cache = new HashMap<String,String>();
Run Code Online (Sandbox Code Playgroud)

大多数时候使用此缓存来从中读取值.我有另一个方法重新加载缓存,在这个方法内部我基本上创建一个新的缓存,然后分配引用.据我所知,对象引用的赋值是Java中的Atomic.

public class myClass {
     private HashMap<String,String> cache = null;
    public void init() {
       refreshCache();
    }
    // this method can be called occasionally to update the cache.
    public void refreshCache() {
        HashMap<String,String> newcache = new HashMap<String,String>();
       // code to fill up the new cache
       // and then finally
       cache = newcache; //assign the old cache to the new one in Atomic way
    }
}
Run Code Online (Sandbox Code Playgroud)

我理解如果我不将缓存声明为volatile,其他线程将无法看到更改,但对于我的用例将缓存中的更改传播到其他线程并且它们可以继续使用旧缓存并不是时间关键延长时间.

你看到任何线程问题吗?考虑到许多线程正在从缓存中读取,并且有时只重新加载缓存.

编辑 - 我的主要困惑是我不必在这里使用AtomicReference,因为赋值操作本身是原子的?

编辑 - 我理解为了使顺序正确,我应该将缓存标记为volatile.但是如果refreshCache方法被标记为synchronized,我不必将缓存设置为volatile,因为Synchronized块将负责排序和可见性?

java multithreading

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

在启动时集成tomcat和Quartz调度程序

我使用的是tomcat 6.0版.我的要求是当tomcat启动时,我想启动一个QuartzScheduler会定期安排一些工作的人.我试图找出最好的方法来做到这一点.以下是我能想到的选项 -

  1. 我可以通过文件中带有" load-on-startup"描述符的servlet web.xml来启动调度程序并调度servlet中的作业.
  2. 可以使用a来完成ContextListener(这听起来比1更好).这可能是一种干净的方法来启动contextInitialized方法内的调度程序并关闭contextDestroyed方法内的调度程序.
  3. 使用MBean描述符.我开发了一个MBean,它将在服务器启动mbeans-descriptor.xml文件时启动.

对我来说,看起来第二种方法更好.第三个可能不是一个好主意,因为它显然不是由jconsole监视的MBean.我的目的是启动调度程序并在tomcat停止时停止它.有没有更好,更清洁的方法来做到这一点?

java tomcat quartz-scheduler

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

具有动态构造函数值的spring bean

我需要在没有构造函数参数的情况下创建一个完整的Object.像这样的东西

Class A  {
  private final int timeOut
  public A(int timeout)
  {
     this.timeOut = timeout;
   }
 //...
}
Run Code Online (Sandbox Code Playgroud)

我希望这个Bean能够进行弹簧管理,以便我以后可以使用Spring AOP.

<bean id="myBean" class="A" singleton="false">
</bean>
Run Code Online (Sandbox Code Playgroud)

但是我的bean需要超时才能作为动态值传递 - 有没有办法在构造函数中创建一个动态值被绑定的spring托管bean?

java spring

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

WeakHashMap迭代和垃圾收集

我正在使用a WeaekHashMap来实现Cache.我想知道我是否正在迭代这张地图的键,同时垃圾收集器正在主动从这张地图上删除键,我会收到ConcurrentModificationException吗?我不这么认为,因为据我所知,并发修改是因为应用程序代码中的错误导致开发人员忘记了解相同的映射是由其他线程共享/使用的,在这种情况下,它不应该发生.但是想知道当WeakHashMap不同步时JVM会如何处理?

java

14
推荐指数
2
解决办法
4008
查看次数

是否有Java等同于Twitter的鸵鸟库?

来自Twitter的鸵鸟项目似乎非常适合我的用例,我想跟踪大量基于JVM的统计信息以及一些自定义统计信息.

https://github.com/twitter/ostrich/

但是,我的代码库是纯Java + Spring 3.0,而不是Scala,所以我可以将Ostrich用于我的案例吗?

java ostrich

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

如何升级过滤器以支持Servlet 3.0异步servlet

我有一个servlet,用于从许多第三方REST数据点获取数据,集成所有数据并以HTML格式报告数据.我也有一个过滤器,其流程如下 -

  1. 请求到达过滤器时创建事件记录,并将eventrecord对象添加到请求中
  2. 执行chain.doFilter - 它允许servlet向eventrecord添加更多细节
  3. 在返回浏览器的路上,filter获取eventrecord对象并记录它.

现在,如果我使用异步servlet AsyncContext context = request.getAsyncContext();,它将与相同的REST数据点进行通信,但是当数据准备就绪时,它将写入响应流而不是等待所有REST数据点响应,我将如何重写我的过滤器?是否会附加到负责从REST数据点刷新数据的线程,以便一旦处理完所有数据并将其记录下来,它将记录事件记录?有没有可以学习的常见模式来理解如何使用Servlet 3.0的异步servlet处理这样的用例?我使用的是JDK 6.0,Tomcat 7.0.

server-push servlet-3.0 java-ee-6

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