您的位置:

java注解配置项目(java注解上加注解)

本文目录一览:

Java注解的出现 Java的注解是从何开始的

我不知道知道谁发明了注解,但是可以告诉你,java不同版本间的功能定义是不同的。这个功能的定义不是个人决定的,而是一个叫做JCP的组织,

这个组织云集了众多的资深专家,包括顶级开发团队中的精英。从java5开始出现了注解这个概念。定义注解的标准是JSR-250。注解从一定程度上分担了xml配置的一些任务(配套的标准如:JPA)。甚至可以在项目中用纯注解来配置。几乎所有的主流框架(除了struts1)都有自己的一套注解。追溯注解的源头,我个人认为,注解的前身就是我们看到的注释文档。标准的注释文档中有包括@author等的标注。在注解之前我们可以用Xdoclet来进行项目的配置。可惜这一方法几乎没有得到应用。但是注解的出现改变了这一现状。注解易于定义,包括本身就是java,提供了很好的编译器支持。我们可以用注解配置对象。这个是xml文件无法做到的。因为注解的易配置性和强灵活性,还有对代码的执行并不产生影响。注解得到了广泛的应用。现在,新的项目开发都开始倾向于注解这种新的开发方式,在开发的效率和纠错性上面。他已经远远优于xml配置。加上主流框架的支持及其它的易于实现性。相信他会走的更好。

Java中使用注解和使用配置文件各有什么优缺点

什么时候用xml:配置文件

1.外部jar包依赖bean配置

2.用注解无法实现,或者用注解无法轻易实现的情形

3.项目组内部达成一致的约定的地方

4.特殊的配置(如:定义一个map)

优:容易编辑,配置比较集中,方便修改,在大业务量的系统里面,通过xml配置会方便后人理解整个系统的架构

缺:比较繁琐,类型不安全,配置形态丑陋,配置文件过多的时候难以管理

========================================

什么时候用注解

除了上面4点,其他情况都可以用

优:方便,简洁,配置信息和 Java 代码放在一起,有助于增强程序的内聚性。

缺:分散到各个class文件中,所以不宜维护

什么是基于java的spring注解配置

基于Java的配置,允许你在少量的Java注解的帮助下,进行你的大部分

Spring配置而非通过XML文件。以@Configuration 注解为例,它用来标记类可以当做一个

bean的定义,被Spring IOC容器使用。另一个例子是@Bean

注解,它表示此方法将要返回一个对象,作为一个bean注册进Spring应用上下文。

怎么动态给java注解参数赋值?

动态赋值指的是在配置文件配置好然后在项目中动态读取?如果是这样的话:

1.在xml文件中使用context:property-placeholder location="”/

这种方式可以读取location指定位置对应的文件,引用的话使用${key}可以获取对应的数据

和这种写法相同的还有

bean class=“com.spring….config.PropertyPlaceholderConfigurer”

property name=“locations"

arrayvalue/value/array

/property

bean

这种是用bean来加载配置文件,看起来更直观

2.通过@Value注解读取配置

这种方法也需要预先在xml文件中设定好配置文件的位置

bean id=“prop” class=“org.springframework.beans.factory.config.PropertiesFactoryBean”

property name=“locations”

array

valueclasspath:.properties/value

/array

/property

/bean

之后在java代码里面可以用#{prop.key}来获取对应的数据prop是bean的名字,key是配置文件的键。

3.使用@PropertySource

在springboot中,可以不需要xml文件来设置配置文件,在需要使用配置文件的类名字前加上

@PropertySource(“locations")就可以读取指定位置的配置,在代码中使用@Value注解可以获取这些数据

@Value(value = “${key}”)

4.使用@ConfigurationProperties(prefix=“”)

SpringBoot项目有时候会使用application.yml来存储配置信息,一般情况下这些数据的存储格式是

a:

key1:value1

key2:value2

这种嵌套方式,当然可以多层嵌套

在需要使用配置文件的类上面使用@ConfigurationProperties(prefix=“a”)可以获取a标签下一层所有的配置的键值对。