小编Rud*_*koŭ的帖子

使ServletContextListener可以弹出

我将Spring插入到现有的Java EE Web应用程序中.我的web.xml中有以下行:

<listener>
    <listener-class>com.MyContextListener</listener-class>
</listener> 
Run Code Online (Sandbox Code Playgroud)

而继MyContextListener类?

public class MyContextListener implements ServletContextListener {

    public void contextInitialized(ServletContextEvent event) {
       //...
    }
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能让MyContextListenerSpring管理?


编辑:

我的假设是:Spring应该创建所有servlet和所有Web应用程序基础结构,所以在contextInitialized方法中发生的一切都MyContextListener应该以某种方式由Spring处理.我怎么能通过实现一些接口来实现.如果我错了,请纠正我.谢谢!

java spring spring-mvc

18
推荐指数
2
解决办法
8099
查看次数

谁首先在类加载过程中创建Class <?>对象?

在我发现的文档中:

类对象由Java虚拟机在加载类时自动构造,并通过调用类加载器中的defineClass方法来构造.

我检查了源代码,但没有找到defineClass要调用的地方,例如来自loadClass方法.你能告诉我,defineClass根据这个方案,谁和什么时候打电话的方法:

方案

图片来源

java classloader

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

Java Stream:按布尔谓词划分为两个列表

我有一份清单employees.他们有isActive布尔字段.我想employees分成两个列表:activeEmployeesformerEmployees.是否可以使用Stream API?什么是最复杂的方式?

java collections reduce functional-programming java-stream

15
推荐指数
3
解决办法
3128
查看次数

为什么ClassLoader的缓存按升序检查?

为什么ClassLoader的缓存按递增顺序检查,而类加载以降序排列? 类装载机授权计划

java classloader

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

UrlClassLoader委托和继承层次结构

我对UrlClassLoader委派层次结构和继承层次结构感到困惑.我创建了扩展UrlClassLoader并执行的类:childOfUrlClassLoader.getParent().getClass().getName() 它给了我: sun.misc.Launcher$AppClassLoader.在此之后我访问了上面提到的类(来源)

249 static class AppClassLoader extends URLClassLoader {
        //...
308     protected synchronized Class<?> loadClass(String name, boolean resolve)
309         throws ClassNotFoundException
310     {
311         // First, check if the class has already been loaded
312         Class c = findLoadedClass(name);
313         if (c == null) {
314             try {
315                 if (parent != null) {
316                     c = parent.loadClass(name, false);
317      
          // ...
329         return c;
330     }
Run Code Online (Sandbox Code Playgroud)

然后我检查了谁是AppClassLoader的父级.我得到sun.misc.Launcher$ExtClassLoader了ExtClassLoader的父母null.


我有几个问题:

1)自从 …

java classloader

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

获取可选对象的字段或返回null

我有可选对象:

Optional<Detail> newestDetail;
Run Code Online (Sandbox Code Playgroud)

我想返回newestDetail.getId()或者如果newestDetail是null返回null.

我们有更复杂的方法做到这一点,而不是遵循?

return newestDetail.isPresent()?newestDetail.get().getId():null;
Run Code Online (Sandbox Code Playgroud)

java nullable nullpointerexception optional java-8

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

让詹金斯在没有sudo的情况下运行docker

我想在Dockershell上运行shell命令Jenkins:

docker ps

是否可以不使用任何插件来完成它?由于Jenkins不是user,但是我可以添加一个服务帐户docker group

jenkins docker

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

字符串和并发性的不变性

我们应该同步写字符串吗?由于字符串是不可变的,因此从2个不同的线程写入和读取之间永远不会出现不一致的状态,对吗?

换句话说,为什么我们没有字符串类型的原子

string concurrency atomic immutability go

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

使用interface和Enum进行潜在打字

我有一个IDevice接口和这个接口的两个枚举实现:AndroidDeviceIosDevice.问题是:我想values()在接口引用上使用潜在的输入和调用方法:

private IDevice getDeviceByReadableName(String versionInXml, IDevice devices) {
    for(IDevice device : devices.values()){
    //...
Run Code Online (Sandbox Code Playgroud)

所以我必须添加public IDevice[] values();到我的界面:

public interface IDevice {
     //...
     public IDevice[] values();
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.Eclipse问我remove static modifiers from AndroidDevice(...)


请:

  1. 向我解释为什么它不起作用?
  2. 这个问题的最佳解决方案是什么,我应该使用反射吗?

java inheritance enums

7
推荐指数
2
解决办法
274
查看次数

Spring:使ServeltDispatcher Context等待直到另一个Context完成加载

我想DBbuildServletDispatcher在完成Context加载后加载,例如在 ApplicationListener<ContextRefreshedEvent>事件触发消息上构建(或继续构建)AppServletDispatcher Context

SpringMultiDisp

换句话说可以AppDispatcher Context等到完成创作DBbuild Context?这有什么常见的方法吗?

java spring servlets

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