标签: annotations

@Resource vs @Autowired

我应该在DI中使用哪个注释@Resource(jsr250)或@Autowired(特定于Spring)?

我已经成功地在过去使用两种,@Resource(name="blah")@Autowired @Qualifier("blah")

我的直觉是坚持使用@Resource标签,因为它已被jsr人批准.
有人对此有强烈的想法吗?

java spring annotations dependency-injection autowired

359
推荐指数
9
解决办法
22万
查看次数

@Nullable注释用法

我在java中看到一些方法声明为:

void foo(@Nullable Object obj)
{ ... }
Run Code Online (Sandbox Code Playgroud)

这是什么意思@Nullable?这是否意味着输入可能是null?没有注释,输入仍然可以为空,所以我猜这不仅仅是它吗?

谢谢

java annotations

329
推荐指数
4
解决办法
20万
查看次数

仅在序列化期间使用@JsonIgnore,但不反序列化

我有一个发送到服务器和从服务器发送的用户对象.当我发出用户对象时,我不想将散列密码发送给客户端.所以我添加@JsonIgnore了密码属性,但这也阻止了它被反序列化为密码,这使得在没有密码时很难注册用户.

我怎样才能@JsonIgnore应用于序列化而不是反序列化?我正在使用Spring JSONView,所以我没有很多控制权ObjectMapper.

我试过的事情:

  1. 加入@JsonIgnore物业
  2. @JsonIgnore仅添加getter方法

java spring json annotations jackson

298
推荐指数
5
解决办法
26万
查看次数

如何使用JUnit Test注释断言我的异常消息?

我已经用@Test注释编写了一些JUnit测试.如果我的测试方法抛出一个已检查的异常,并且我想要将该消息与异常一起断言,那么有没有办法使用JUnit @Test注释?AFAIK,JUnit 4.7不提供此功能,但未来的版本是否提供此功能?我知道在.NET中你可以断言消息和异常类.寻找Java世界中的类似功能.

这就是我要的:

@Test (expected = RuntimeException.class, message = "Employee ID is null")
public void shouldThrowRuntimeExceptionWhenEmployeeIDisNull() {}
Run Code Online (Sandbox Code Playgroud)

java testing annotations junit4 assertion

286
推荐指数
8
解决办法
18万
查看次数

java中的接口和@interface有什么区别?

自从90年代末在大学期间使用JBuilder以来我没有触及Java,所以我有点失去联系 - 无论如何我本周一直在研究一个小型Java项目,并使用Intellij IDEA作为我的IDE ,改变我的常规.Net开发速度.

我注意到它支持添加接口和@interfaces,什么是@interface,它与普通接口有什么不同?

public interface Test {
}
Run Code Online (Sandbox Code Playgroud)

public @interface Test {
}
Run Code Online (Sandbox Code Playgroud)

我做了一些搜索,但找不到大量有用的信息引用@interface.

java language-features annotations interface

285
推荐指数
5
解决办法
9万
查看次数

将Mockito模拟注入Spring bean

我想将一个Mockito模拟对象注入一个Spring(3+)bean中,以便使用JUnit进行单元测试.我的bean依赖项目前通过@Autowired在私有成员字段上使用注释来注入.

我考虑过使用ReflectionTestUtils.setField但我希望注入的bean实例实际上是一个代理,因此不会声明目标类的私有成员字段.我不希望为依赖创建一个公共setter,因为我将修改我的界面纯粹是为了测试的目的.

我遵循了Spring社区给出的一些建议,但是没有创建模拟并且自动连线失败:

<bean id="dao" class="org.mockito.Mockito" factory-method="mock">
    <constructor-arg value="com.package.Dao" />
</bean>
Run Code Online (Sandbox Code Playgroud)

我目前遇到的错误如下:

...
Caused by: org...NoSuchBeanDefinitionException:
    No matching bean of type [com.package.Dao] found for dependency:
    expected at least 1 bean which qualifies as autowire candidate for this dependency.
    Dependency annotations: {
        @org...Autowired(required=true),
        @org...Qualifier(value=dao)
    }
at org...DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(D...y.java:901)
at org...DefaultListableBeanFactory.doResolveDependency(D...y.java:770)
Run Code Online (Sandbox Code Playgroud)

如果我将constructor-arg值设置为无效,则在启动应用程序上下文时不会发生错误.

junit spring annotations dependency-injection mockito

276
推荐指数
13
解决办法
23万
查看次数

为什么JPA有@Transient注释?

Java有transient关键字.为什么JPA @Transient不是简单地使用已经存在的java关键字?

java annotations jpa transient java-ee

269
推荐指数
7
解决办法
29万
查看次数

在运行时扫描Java注释

搜索带注释类的整个类路径的最佳方法是什么?

我正在做一个库,我想允许用户注释他们的类,所以当Web应用程序启动时,我需要扫描整个类路径以获取某些注释.

你知道一个库或Java工具吗?

编辑:我正在考虑类似Java EE 5 Web服务或EJB的新功能.您使用@WebServiceor 注释您的类,@EJB并且系统在加载时查找这些类,以便远程访问它们.

java annotations classloader

243
推荐指数
10
解决办法
16万
查看次数

在JPA中设置列的默认值

是否可以为JPA中的列设置默认值,以及是否使用注释完成了哪些操作?

java annotations jpa

234
推荐指数
12
解决办法
37万
查看次数

为什么不能在Java中扩展注释?

我不明白为什么Java注释中没有继承,就像Java类一样.我认为这将非常有用.

例如:我想知道给定的注释是否是验证器.通过继承,我可以反复地浏览超类,以了解此注释是否扩展了ValidatorAnnotation.否则,我该怎样才能做到这一点?

那么,任何人都可以给我这个设计决定的理由吗?

java inheritance annotations

223
推荐指数
4
解决办法
9万
查看次数