草庐IT

【一句话】@Configuration和@Component的区别

全部标签

java - @Component 和@Repository/@Service 注解的处理方式有什么区别?

我今天在使用Spring3.0时偶然发现了一个相当奇怪的问题:有一个抽象类A及其具体实现A_Impl.A_Impl注释为@Repository并由Spring自动扫描(和都在上下文中声明)。A和A_Impl部署在单独的JAR中(不确定这是否重要)。一切正常。现在,我正在审查该代码和@Repository在语义上似乎不太合适(所讨论的类与持久性无关)所以-以我无限的智慧-我决定将其更改为更通用的@Component.不用说,一切都爆炸了,让我看起来像个彻头彻尾的白痴。错误(在Spring上下文初始化期间发生)是Spring的ClassPathResource.getInputStream

java - 静态 block 和在类中分配静态之间的区别?

下面两种静态变量的初始化有什么区别吗:classClass1{privatestaticVarvar;static{var=getSingletonVar();}}classClass2{privatestaticvar=getSingletonVar;}这两种初始化静态变量的不同方式在功能上是否相同? 最佳答案 是的,它在功能上是一样的。来自JavadocThereisanalternativetostaticblocks—youcanwriteaprivatestaticmethod:classWhatever{publicst

java - 如何将@Configuration 和@EnableScheduling 与Spring Batch 一起使用

因为“只有返回无效的方法可以用@Scheduled注释”,当我使用@Bean配置时如何使用SpringBatch和SpringSchedulerTask的xml配置?您可以在下面找到我的完整配置文件。当我从main()触发但只有一次时,它运行完美。我想添加@Scheduled(fixedrate=9999)以便以特定频率调用相同的作业。据我所知,为了做到这一点,我应该在step1方法周围添加@Scheduled但我不能,因为它返回的值与void不同。@Configuration@EnableBatchProcessing@EnableSchedulingpublicclassBatch

Java:LSParser 和 DocumentBuilder 有什么区别

我找不到关于org.w3c.dom.ls.LSParser的任何信息。我知道它是一个接口(interface),但只有一种方法可以获取具体对象afaik。DOMImplementationLSfactory=(DOMImplementationLS)myXMLDocument.getImplementation();LSParserparser=factory.createLSParser(DOMImplementationLS.MODE_ASYNCHRONOUS,null);LSParser与javax.xml.parsers.DocumentBuilder(或SAXParser)有

java - loadClass(String name) 和 loadClass(String name, boolean resolve) 的区别

loadClass(Stringname)之间有什么区别?和loadClass(Stringname,booleanresolve)?我知道的唯一区别是如果resolve参数为真,loadClass(Stringname,booleanresolve)调用findLoadedClass(String)?那么什么时候将true或false传递给resolve参数?我对这两个功能很困惑。谢谢。 最佳答案 resolve参数控制加载的类是否链接。在链接期间,静态常量被初始化并分配内存。此外,该类的正确性得到验证,并且可能会解析到其他类的链

Java - 从终端双击并运行以打开 .jar 文件有什么区别?

我正在使用基于Java的应用程序(一个.jar文件)访问一个网站进行在线讨论。最近,我在通过双击(在Mac和Ubuntu上)运行应用程序和从终端运行java-jarclient.jar之间遇到了一些奇怪的区别。当我通过双击打开客户端时,它不允许我登录,但如果我从终端运行它一切正常。我知道描述可能过于模糊,但我只是想知道这两种运行.jar文件的方式之间是否存在任何一般差异。谢谢!我的Java环境如下图:$java-versionjavaversion"1.7.0_17"Java(TM)SERuntimeEnvironment(build1.7.0_17-b02)JavaHotSpot(T

java - Spring @Component 类必须是公开的吗?

我想将组件的接口(interface)公开为接口(interface),实现类将受到包保护(可能在其他包中):packagebaz.ifaceinterfaceFoo{voidbar();}packagebaz.whatever@ComponentclassSpringyFooimplementsbaz.iface.Foo{publicvoidbar(){frobnicate();}}假设baz.whatever在component-scan中,Spring是否能够在其他地方Autowiringbaz.iface.Foo?classFooClient{@Autowiredprivate

java - com.sun.jna 和 net.java.dev.jna 的区别?

我正在查看中央Maven存储库,并看到一个net.java.dev.jna和一个用于JNA的com.sun.jnagroupId。JNA的github,使用com.sun.jna路径作为其源代码中的目录,表明4.1已作为评论的一部分推送到存储库中,但我看到net.java.dev.jna在4.1和com.sun.jna在3.0。显然,我想使用JNA,但感到困惑。这个包是怎么回事? 最佳答案 要使用的正确4.1版本是net.java.dev.jna:net.java.dev.jnajna4.1.0包名似乎仍然是com.sun.jna,

java - EasyMock中的 ".andReturn(...).anyTimes()"和 ".andStubReturn(...)"有区别吗?

Thispost建议两者——两者之间存在差异(请参阅用户SnoopyMe的评论)并且两者可以互换使用。EasyMock文档没有提及任何区别。在实践上或语义上有什么区别吗?如果是这样,什么时候使用一个比另一个更合适?编辑:以下测试表明存在差异,至少在与严格模拟一起使用时:@TestpublicvoidtestTestMe(){Barbar=createStrictMock(Bar.class);expect(bar.doBar()).andReturn(1).anyTimes();expect(bar.doOtherBar()).andReturn(2).once();replay(ba

java - jpa查询中加入和路径导航的区别

我有以下2个实体:classUser{privateStringname;privateUserTypeuserType;}classUserType{privateStringname;}我想获取用户类型名称等于“admin”的所有用户。我可以编写以下2个返回相同结果的查询。selectufromUseruwhereu.userType.name='admin';和selectufromUserujoinu.userTypeutwhereut.name='admin';只是想了解哪种方法更可取,有什么区别。如果我始终可以使用实体之间的导航获得结果,我什么时候要遵循连接方法?