草庐IT

Spring之@Autowired依赖注入探究

全部标签

java - Spring @Async 和同步

我有一个基于Spring的异步方法(用@Async注释)我想在错误事件发生一定次数的情况下暂停。由于可能有多个线程在做同样的事情,我尝试了一个静态的AtomicInteger(MY_COUNT)这样所有的线程都可以知道计数,并且利用AtomicInteger提供的内置并发。在我的单元测试中(在Eclipse中使用SpringJUnit4ClassRunner运行),一切正常,直到线程命中MY_COUNT.incrementAndGet()。然后线程就消失了。没有异常(exception),没有。异步工作线程就消失了。我尝试取出AtomicInteger并仅使用synchronized方

java - 使用带有 hdbc 的 spring security 3.0 逐步登录示例

我是Spring和SpringSecurity的新手。我只需要一个指向正确方向的指针:我有一个简单的SpringMVC/SpringSecuritywebapp。我想将登录功能添加到网络应用程序中。我创建了以下两个表。CREATETABLE"users"("USER_ID"NUMBER(10)NOTNULL,"USERNAME"VARCHAR(45)NOTNULL,"PASSWORD"VARCHAR(45)NOTNULL,"ENABLED"NUMBER(1)NOTNULL,PRIMARYKEY("USER_ID"))CREATETABLE"user_roles"("USER_ROLE_

java - 在运行时动态添加 spring 上下文配置?

在spring/junit中,你可以使用@ContextConfiguration加载应用程序上下文文件,例如@ContextConfiguration({"classpath:a.xml","classpath:b.xml"})我有一个要求,如果我在测试类上看到特殊注释,然后动态添加另一个XML上下文文件。例如:@ContextConfiguration({"classpath:a.xml","classpath:b.xml"})@MySpecialAnnotationclassMyTest{...}在上面的示例中,我将查找@MySpecialAnnotation并添加special

java - 开发环境中的spring延迟初始化

为了减少开发环境中的服务器启动时间,我想更改Spring的默认行为以延迟初始化bean。我知道这可以通过在bean级别指定default-lazy-init="true"来完成。但是,我不想每次从SCM获取最新配置文件并在重新checkin之前将其更改回来时都更改此属性。是否有任何其他方法可以外部化此属性?比如指定系统属性?我还尝试在特定于环境的属性文件中定义一个属性,并在beans元素中引用该属性,但没有成功。default-lazy-init="${default-lazy-init-value}"还有其他方法可以轻松实现吗? 最佳答案

java - 使用 Maven 重新编译依赖项 - 可能吗?任何性能提升?

我在考虑Maven中的依赖关系。Maven下载了它们,但不知道它们是为哪个JVM目标版本编译的,以及用什么编译器编译的。这就提出了两个问题:依赖重新编译会带来更快的依赖库吗?我试图搜索这个,但没有找到足够的答案。我发现1.6有Splitbytecodeverification,这是在使用目标1.6编译时完成的。还有一个问题AreJava6'sperformanceimprovementsintheJDK,JVM,orboth?其中提到较新版本的javac可能会生成更优化的代码。Maven是否可以执行依赖库的重新编译?是否可以配置Maven以下载源代码,将有关1.6目标的信息放在那里并执

java - Spring 参数化/理论 JUnit 测试

我希望结合SpringProfilesandConfigurations的灵active与并行运行的JUnit测试一起使用Parameterized或Theories注解。有什么方法可以合并所有这些功能来运行我的单元测试吗?我一直遇到的问题是参数需要访问注入(inject)的bean,这是不可能的,因为用@Parameters或@DataPoints注释的函数应该是静态的。我真的很讨厌必须将它连接到每个类甚至某处的静态函数中,因为我希望能够快速切换配置文件而不必更改Java代码。这可能吗? 最佳答案 找到ticket对于这个请求。附

java - 在 Maven 中检测不兼容的依赖项?

假设您有一组Web应用程序,它们使用Spring等通用库的各种版本。我有一个也使用这个公共(public)库的业务逻辑库。到目前为止没有问题,但是公共(public)库的一个版本改变了抽象类定义并破坏了业务逻辑库。所以我最终得到了一个看起来像这样的兼容版本表......business-lib-version|common-lib-version1.0|1.01.1|2.0我不希望业务库版本驱动消费应用程序中的通用库版本。相反,我想根据公共(public)库选择正确版本的业务库。我很确定这是不可能的,所以我继续讨论主要问题。是否有一种优雅的方法来检测版本不兼容?理想情况下,我想要一个构

java - 与父实体一起驱逐依赖集合

我刚刚意识到,当一个对象从Hibernate缓存中被逐出时,dependantcollections,ifcached,havetobeevictedseparately.对我来说,这是一个很大的WTF:很容易忘记驱逐一个集合(例如,当一个新的集合被添加到对象映射时);驱逐依赖集合的代码丑陋且庞大,例如MyClassmyObject=...;getHibernateTemplate().evict(myObject);缓存cache=getHibernateTemplate().getSessionFactory().getCache();cache.evictCollection("

java - 通过 Spring + Hibernate 只读数据

注意到如果我想读取一些数据并且如果我没有事务上下文我将无法这样做因为org.hibernate.HibernateException:NoSessionfoundforcurrentthread对于读取数据,通常不需要事务。因此,为了让Spring管理session,即使对于只读操作(如选择...),它也需要有一个事务?这不是开销吗?PS.我不想手动打开和关闭session...非常感谢。 最佳答案 @Transactional除了指示spring启动和提交事务外,还告诉spring打开和关闭session。这不是很简单,但这就是它

java - Maven 构建不同于依赖树

我正在使用Maven3构建具有3层的Java应用程序-服务器、ejb和ui。EJB工程依赖Server工程,UI工程只依赖EJB,并为Server传递依赖提供排除。当UI项目构建为war时,服务器依赖项被包含在内,尽管它没有显示在dependency:tree命令上。这里是运行mvndependency:tree的相关输出**project.name:UI:war:1.0SNAPSHOT**+-project.name:Common:jar:1.0SNAPSHOT:compile|+org_common:_lib:jar:16.0.006:compile||+-log4j:log4j: