我很难理解hibernate何时命中二级缓存以及何时使缓存无效.
这就是我目前所理解的:
我不明白的是
或者我认为缓存完全错误?在这种情况下,哪种更适合使用二级缓存?hibernate文档根本不清楚缓存如何在现实中工作.只有如何设置它的说明.
更新: 所以我已经明白二级缓存(没有查询缓存)对于按ID加载数据会很好.例如,我有用户对象,我想检查Web应用程序中每个请求的权限.通过在二级缓存中缓存用户来减少数据库访问是否是一个好例子?就像我将用户ID存储在会话中或我需要检查权限的任何地方,我会通过它的id加载用户并检查权限.
我正在评估Spring MVC&Boot和AngularJs来构建Web应用程序.我遇到的问题是,当我对静态内容(html,js,css)进行修改时,我每次都必须重新启动应用程序.我希望有一种方法可以解决这个问题,因为重新启动静态内容更改的整个应用程序效率不高.我尝试过的每个其他Web应用程序框架都允许动态更新静态内容文件(甚至只是Spring MVC和普通的旧WAR应用程序).
我从"使用Spring Boot Actuator构建RESTful Web服务"指南(http://spring.io/guides/gs/actuator-service/)设置了我的项目.基本上它使用Spring Boot和MVC控制器来创建REST服务.另外,我使用"使用AngularJS使用RESTful Web服务"指南(http://spring.io/guides/gs/consuming-rest-angularjs/)来构建AngularJS的前端.它创建一个显示REST服务响应的网页.我所做的唯一改变是请求发送到我的应用程序而不是" http://rest-service.guides.spring.io/greeting ".我的静态内容存储在"src/main/resources/public"文件夹中.此设置正常工作,但它不会重新加载静态内容.
我们假设我有一个Car类.在我的代码中,我想创建10辆汽车.Car类有一些@Inject注释依赖项.这样做的最佳方法是什么?
CDI有一个Provider接口,我可以使用它来创建汽车:
@Inject Provider<Car> carProvider;
public void businessMethod(){
Car car = carProvider.get();
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,如果我没有CarFactory,它有一个带有@Produces注释的方法来创建汽车,那就不行了.尽管它反映了现实世界我无法在没有工厂的情况下制造汽车,但我宁愿不为所有东西编写工厂.我只是希望CDI容器像任何其他bean一样创建我的汽车.你怎么建议我创造那些汽车?
前提是:对于异步作业处理,我有一个自制的框架:
我想用一些现成的库替换它,因为我希望这些更强大,我不想保持这个.我一直在研究这个问题,并认为你可以使用类似的JMS.但我仍然需要构建一个简单的java API,找出一个运行时,我想在扩展和构建监控UI时进行处理.我觉得我唯一能从JMS中受益的是我不需要做的就是数据库的东西.
是否有类似的东西是现成的?
UPDATE
基本上这是我想要做的设置:
我正在开发一个OSGI包,用于使用PDFBox库解析PDF文件.我使用maven构建项目,使用Karaf作为OSGI容器.PDFBox库与OSGI兼容,所以我认为这很容易.但我无法正确获得部署模型.
在传统的Web应用程序中,我将构建一个包含所有依赖项的WAR文件,并将其放在Servlet容器中,然后部署它.另一方面,我想出如何安装osgi包的唯一方法是手工完成.我必须创建一个安装指令文件,列出必须手动下载并复制到Karaf部署文件夹的所有依赖项,并确保按正确的顺序执行.我觉得自己又回到了石器时代.
必须有一个更简单的方法,对吧?我仍然使用maven来声明依赖项,但我只需要使用提供的范围.如果可以自动安装这些依赖项,那将会很棒.
我正在使用maven-bundle-plugin从我的应用程序生成一个包.它确实生成了一个OBR存储库(repository.xml),我尝试使用obr karaf插件安装我的软件包,但它仍然无法帮助依赖.
Puppet默认将日志记录写入syslog.这是为什么?大多数软件都写入一些单独的日志文件.我检查了文档,并提到您可以写入日志文件,但有人提到"通常不使用它".这是个坏主意吗?
跟踪木偶记录的典型设置是什么?在/ var/log/messages文件中使用grep?
我正在使用Spring Security 3.0.x,我希望我的用户使用OpenId和Facebook进行身份验证.目前我的OpenId部分正在运行,但我对用户如何使用Facebook登录感到困惑.我已经阅读了关于Spring安全性的OAuth,但是就像我所说的那样,它只对访问资源有好处.示例应用程序使用用户名和密码进行身份验证
所以我的问题是,如何使用Spring安全性对Facebook用户进行身份验证?
我需要实现一个搜索,用户可以输入*作为外卡.他们正在搜索的数据库是SQL服务器.我只想用*替换*:
userInput = userInput.replace('*', '%');
Run Code Online (Sandbox Code Playgroud)
我担心,因为我"手工"这样做,我可能会引入一些错误或安全漏洞.你觉得这样做有什么问题吗?有没有图书馆可以帮我这么做?
我使用Hibernate作为ORM映射器和Criteria API来创建查询,如果它有助于答案.
我正在学习EJB,据我所知,当客户端获取有状态会话bean时,服务器会将其保留在内存中(或钝化它),直到客户端删除bean.非常简单,除了我在哪里看到客户端如何实际删除bean的任何示例.除了关闭客户端应用程序之外,您如何做到这一点?或者,如果我想重新启动,我是否只需要在所有有状态bean中实现重置方法?
情况是我想继承一个对象以获得更清晰的构造函数接口:
class BaseClass {
public BaseClass(SomeObject object){
...
}
}
class SubClass extends BaseClass{
private SubObject subObject = new SubObject();
public SubClass(){
super(new SomeObject(subObject)); // doesn't compile
}
}
Run Code Online (Sandbox Code Playgroud)
但要做到这一点,我需要在构造函数之前做一些事情,就像上面的例子中一样,但不能,因为Java不允许这样做.有没有办法解决?我开始觉得,如果你的类被设计为子类,它应该总是实现默认构造函数并为它需要的值提供setter ...有时你可以直接在超级构造函数中创建一个新对象.作为一个参数,但如果你需要对你创建的对象的引用,那么你就是一个人.
这是我一直以来的一个老问题.我想在开发环境中重新部署.在一些部署之后,我用完permgen并且必须杀死服务器.多年前我试图找到问题的解决方案,但刚刚发现Spring和Hibernate互相指责问题.有没有找到解决方案?
Spring Roo声称它不会在运行时生成类,因此它不会成为问题.它真的有效,如果确实如此,我该如何配置我的应用程序呢?
我知道这里有两个问题,但如果你能回答一个问题就够了:)
我的技术堆栈是Tomcat(servlet 3.0),Jersey用于JAX-RS,Spring和Hibernate.当Hibernate中的某些数据转换错误出现意外问题时,我不希望客户端看到我的堆栈跟踪是否存在Tomcat尝试默认打印的异常.但是我想记录这些异常,这样我就可以找到错误并解决问题.
我的第一次尝试是使用来自JAX-RS的ExceptionMapper并且天真地认为可以解决我的问题.但后来我发现泽西岛抛出了自己的例外,例如未映射的网址是com.sun.jersey.api.NotFoundExceptions.这会导致记录404异常,这是我不想要的.更糟糕的是,客户端不再获得404而是获得状态代码500.
我可以为jersey抛出的异常创建异常映射器,但我可能会错过一些东西.这样的事情有最好的做法吗?