Tag: annotations

在IntelliJ和Eclipse开发人员都在工作的项目中使用@NotNull

IntelliJ IDEA的同事(在另一个项目上工作)向我展示了惊人的@NotNull注释。 我在这里阅读的消息是关于如何开始添加@NotNull到处节省了大量时间和头痛(当IntelliL 10检测到null会造成严重破坏时,它甚至可以自动将@NotNull添加到旧代码中)。 因为我读了我的第一个“可能的@NotNull违规”消息(实时,在IDE中,甚至在一个尚未编译的部分.java文件上),我的下巴掉了下来,我迷上了。 所以我想知道:如果我们想在开发人员同时使用Eclipse和IntelliJ的项目中开始使用@NotNull,那么还有什么需要知道的吗? 我知道IntelliJ附带了annotations.jar 。 这与Eclipse兼容吗?

jar305.jar中的注释是否应优先于FindBugs的annotation.jar中的类似注释?

在FindBugs发行版中, annotations.jar 不是 jsr305.jar的子集。 但是,几个注释似乎是重复的(要么完全或非常密切)。 如果我有选择,我应该更喜欢jsr305.jar的注释吗? 请注意,我不仅仅想知道使用jsr305.jar注释会“更好”,因为它们代表了一个标准。 相反,我想知道如果我更喜欢特定注释的jsr305.jar版本,FindBugs工具是否会执行相同(或更好)的分析。 可能是某些jsr305.jar注释应该是首选,但其他人不应该这样。 我正在使用FindBugs 1.3.9,这是本文撰写时的最新版本 。 使用此版本,我看到以下选项(如果有其他选项,请更新此表 ): edu.umd.cs.findbugs.annotations.CheckForNull→javax.annotation.CheckForNull edu.umd.cs.findbugs.annotations.CheckReturnValue→javax.annotation.CheckReturnValue edu.umd.cs.findbugs.annotations.NonNull→javax.annotation.Nonnull(NB大小写) edu.umd.cs.findbugs.annotations.Nullable→javax.annotation.Nullable edu.umd.cs.findbugs.annotations.When→javax.annotation.meta.When 此外,所有JCIP 注释都是重复的: net.jcip.annotations.GuardedBy→javax.annotation.concurrent.GuardedBy net.jcip.annotations.Immutable→javax.annotation.concurrent.Immutable net.jcip.annotations.NotThreadSafe→javax.annotation.concurrent.NotThreadSafe net.jcip.annotations.ThreadSafe→javax.annotation.concurrent.ThreadSafe

如何在Scala 2.8注释中指定静态数组?

我一直在使用Hibernate Annotations 3.4.0在Scala 2.8.0中构建一些带注释的域类。 它一直工作正常,除了有一些注释将数组作为参数。 例如,这是我想在Scala中表达的Java注释: @OneToMany(mappedBy=”passport_id”, cascade=CascadeType.PERSIST) 但是,注释需要数组/集作为输入: [ERROR] …/Passport.scala:50: error: type mismatch; [INFO] found : javax.persistence.CascadeType(value PERSIST) [INFO] required: Array[javax.persistence.CascadeType] [INFO] @OneToMany(mappedBy=”passport_id”, cascade=CascadeType.PERSIST) 我尝试了各种括号,方形/角度/花括号等,以此类推: @OneToMany(mappedBy=”passport_id”, cascade=(CascadeType.PERSIST)) @OneToMany(mappedBy=”passport_id”, cascade=[CascadeType.PERSIST]) @OneToMany(mappedBy=”passport_id”, cascade=) @OneToMany(mappedBy=”passport_id”, cascade={CascadeType.PERSIST}) …但不幸的是,我已经达到了对Scala / Java注释的理解。 感谢帮助。

是否有充分的理由使用XML而不是通过注释配置hibernate?

我一直在使用Hibernate几年,但只使用它注释,并在我的代码中设置连接参数。 我没有使用XML文件“遗漏了什么”? 是否只有XML可用的重要function? 是否存在使用XML有意义的情况或模式?

无法在一对多关系hibernate注释中插入null

我有一个A类{Set b …..},它将B类的引用保存为Set。 这是一对多的关系。 这两个类在oracle中都有音序器。 我把cascade放在hibernate注释中。 当我保存类A时,它给出了我无法插入null B.a_id的错误。 A-id在我的数据库中不可为空。 我怎么能坚持这种关系。

spring配置文件和web.xml的确切位置在哪里?

在呈现WEB-CONTENT / WEB-INF / jsp / index.jsp中的index.jsp时获取DispatcherServlet的类未找到exception 以下是项目的结构。 web.xml位于WEB-CONTENT下。 abc是我的Dispatcher servlet的名称。 因此配置文件将是abc-servlet.xml,它将包含定义了所有命名空间和模式的bean标记。 我应该在哪里放置abc-servlet.xml文件? 它应该在classes文件夹中还是在web.xml中? 是否因为spring配置文件的位置而出现exception? 此外,如果我将配置文件放在其他位置,如何让项目知道它在项目中的特定路径? 我在smaple项目中使用注释驱动的控制器。

如何在不更改注释的情况下禁用Hibernate中某些特定实体的二级缓存

我在我的应用程序中使用Hibernate二级缓存,由于某些商业原因, 我无法再更改实体注释 。 在我的项目中,除了从Hibernate更改数据库之外,还存在其他未通过Hibernate的本机SQL。 因此,从本机SQL更新数据库后,Hibernate二级缓存数据可能会过时。 这就是为什么我想为某些实体禁用二级缓存(以编程方式或以其他方式更改注释)。 提前致谢!

Spring 3.1.1用hibernate 4.1注释配置

我正在使用spring3.1.1和hibernate 4.1设置新项目。 当我运行我的项目时,我收到以下错误 java.lang.NoSuchMethodError: org.hibernate.SessionFactory.getCurrentSession()Lorg/hibernate/classic/Session; at com.humancapital.dao.TestModelDAOImpl.getTestModelList(TestModelDAOImpl.java:22) 我的applicationContext.xml com.humancapital.dao.TestModel org.hibernate.dialect.MySQLDialect true update MyDAOImpl @Repository public class TestModelDAOImpl implements TestModelDAO { @Autowired private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory){ this.sessionFactory = sessionFactory; } @SuppressWarnings(“rawtypes”) @Override @Transactional(readOnly=true,propagation=Propagation.REQUIRES_NEW) public List getTestModelList() { System.out.println(sessionFactory.toString()); return sessionFactory.getCurrentSession().createCriteria(TestModel.class).list(); } } 我已经添加了我的依赖jar,请建议我 antlr-2.7.7.jar antlr-runtime-3.0.jar commons-collections-3.2.1.jar commons-dbcp-1.4.jar commons-fileupload-1.2.jar commons-lang-2.4.jar commons-logging.jar commons-pool-1.5.4.jar dom4j-1.6.1.jar ejb3-persistence-3.3.1.jar […]

我可以使用Java注释来定义编译时间检查吗?

例如,我想创建注释@Out来定位参数。 然后我会以某种方式使用编译器来检查函数返回之前是否设置了参数值。 这可能吗? 还考虑了一个@Immutable注释,该注释不允许调用任何未使用@Const注释的方法或访问任何公共字段。 (编译时间,可能是运行时?) 到目前为止我有这个: //I’m assuming Class retention is a subset of Runtime retention @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PARAMETER) public @interface Out { //no idea what to go in here. } 这是另一个注释。 再次,我没有完整的定义: @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface Immutable { } 我想我可以开始设计一个策略来在运行时使用reflection实现它,但我想指示编译器或预处理器为我检查那些东西,所以我的注释将没有开销。 这是你认为“如果可以做到这一点,它已经在那里,如果是,我可以在哪里抓住它”的事情之一。 编辑 :在进一步考虑@Const和@Immutable之后,在记住java通过值传递指向对象的指针之后,我扩展了@Const的定义,摆脱了@Immutable ,并改变了@Out的定义,如下所示: /** * When Applied to a method, ensures the method doesn’t […]

@EnableWebSecurity在spring有什么用处

按照春季文档 将此批注添加到@Configuration类,以便在任何WebSecurityConfigurer定义Spring Security配置,或者更有可能通过扩展WebSecurityConfigurerAdapter基类并覆盖单个方法: 或者正如@EnableWebSecurity描述的那样,用于在我们的项目中启用SpringSecurity。 但我的问题是,即使我没有用@EnableWebSecurity注释我的任何类,仍然是应用程序提示输入用户名和密码。(默认行为) 所以我在@EnableWebSecurity和没有@EnableWebSecurity情况下收到了同样的行为。 有人可以解释这个注释究竟是什么?