小编Tim*_*sen的帖子

类继承的好例子是什么?

我正在编写面向对象语言的文档,我想知道哪种类是继承的好例子.

一些常见的例子:

class Person {
}
class Employee extends Person {
}
Run Code Online (Sandbox Code Playgroud)

目前我最喜欢的,但我不喜欢Person-> Employee,因为'Employee'看起来不太有趣.

class Bicycle {
}
class MountainBike extends Bicycle {
}
Run Code Online (Sandbox Code Playgroud)

我在一些Java教程中发现了这一点,但是自行车的属性并不是很明显.

class Animal {
}
class Bird extends Animal {
}
Run Code Online (Sandbox Code Playgroud)

和自行车一样.

class A {
}
class B extends A {
}
Run Code Online (Sandbox Code Playgroud)

太抽象了.主要问题是这样的类需要更抽象的属性和方法.

有没有人有一个简单的类层次结构的更好的例子?

oop documentation inheritance

28
推荐指数
8
解决办法
6万
查看次数

在Tomcat中具有过期日期的JSESSIONID Cookie

设置Tomcat为servlet会话发送的JSESSIONID cookie的截止日期的最佳方法是什么?

默认情况下,cookie的到期日期似乎是"会话",这意味着一旦浏览器重新启动,会话就会在客户端中消失.但是我想让它保持打开12小时,即使在浏览器重启后(然后会相应地在服务器中配置会话超时).

有没有办法在Tomcat中设置过期日期,例如使用某些配置选项或扩展模块?或者是否有可靠的方法使用Servlet过滤器为JSESSIONID设置过期日期?

cookies session tomcat servlets jsessionid

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

如何验证XmlSerializer的输出?

在C#/ .NET 2.0中,当我使用XmlSerializer 序列化对象时,根据XML模式验证输出的最简单方法是什么?

问题是用XmlSerializer编写无效的XML太容易了,我找不到一种方法来验证看起来不麻烦的XML.理想情况下,我希望在XmlSerializer中设置模式或者使用一个验证的XmlWriter.

c# validation schema serialization xmlserializer

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

根据xml架构验证xml文件

这是关于针对XML模式验证XML文件(例如:marshalledfile.xml)(例如:schemafile.xsd).我们使用jaxb将java对象编组成一个xml文件.

  1. 最好的方法是什么?

  2. 有人可以给出一个如何做到这一点的简单例子吗?

感谢您的帮助.

谢谢,Alo

java xml validation schema jaxb

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

使用Spring/EHCache加载时刷新缓存

我在具有数据库后端和基于EHCache的缓存的Spring多线程Web服务上有一个缓存问题.该服务有许多客户端一次又一次地请求相同的对象,每秒有几十个请求.经常请求的对象只有几个,并且不经常请求大量其他对象.对象每隔几分钟就可以更改一次,因此缓存的TTL设置为一分钟.从数据库加载对象很慢并且至少需要几秒钟.

起初我使用了一个天真的实现来获取对象:

  1. 检查对象是否在缓存中.
  2. 如果是,请从缓存中返回.
  3. 如果没有,从数据库加载它,将其放入缓存并返回它.

这在最初在本地测试时运行良好.但是,每当一个更频繁请求的对象在缓存中到期时,在更快的服务器上进行性能测试就会显示出一些非常糟糕的负载峰值.发生这种情况时,在接下来的10秒内,对该对象的所有请求都将导致数据库加载,直到第一个线程完成数据库加载并将新对象放入缓存.结果是数据库上的负载很短但非常高,并且许多用户需要等待请求完成.

我当前的实现通过跟踪当前正在加载哪个对象来改进数据库负载:

  1. 检查对象是否被缓存.
  2. 如果是,请从缓存中返回.
  3. 如果没有,请检查当前是否正在加载对象.
  4. 如果是,请等待另一个线程的加载完成,从缓存中获取新对象并将其返回.
  5. 如果不是,则将对象放入加载对象列表中,完成后将其放入缓存中并返回.

通过此实现,即使对象到期,也只有一个数据库操作.并且,由于较低的数据库负载,它也将更快完成.但它仍然意味着在对象加载期间请求对象的所有用户都需要等待.

我真正想要的是只有第一个线程等待数据库加载,而所有其他线程只是在加载对象时返回'过期'对象.对于我来说,响应时间比对象太老了几秒钟更重要.

或者,当我注意到对象将在几秒钟内过期时,我可以异步刷新缓存.这更接近EHCache的单个TTL模型,并且意味着没有人需要等待数据库负载

我真正的问题是:在我重新发明轮子之前,是否有任何现有的框架已经实现了这样的东西(在Spring/EHCache环境中)?或者也许在Spring/EHCache中存在对此的支持,我找不到合适的选项?

java spring multithreading caching ehcache

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

Web.xml ExceptionType

是否可以在web.xml中定义两个部分以捕获两种不同的异常类型:

<!-- general exception -->
<error-page> 
  <exception-type>**java.lang.Exception**</exception-type> 
  <location>/generalError.jsp</location> 
</error-page>

<!-- specific exception -->
<error-page> 
  <exception-type>org.myapp.myException</exception-type> 
  <location>/sessionTimeout.jsp</location> 
</error-page>
Run Code Online (Sandbox Code Playgroud)

这会导致任何冲突吗?

java web.xml servlets exception

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