Java代码中前面带@是什么意思

Java代码中前面带@是什么意思?比如:packageuser.withouttm;importorg.springframework.beans.factory.ann... Java代码中前面带@是什么意思?

比如:

package user.withouttm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.apache.commons.dbcp.BasicDataSource;
@Service("service1")
public class UserJdbcWithoutTransManagerService {
@Autowired
private JdbcTemplate jdbcTemplate;
public void addScore(String userName,int toAdd){
String sql = "UPDATE t_user u SET u.score = u.score + ? WHERE user_name =?";
jdbcTemplate.update(sql,toAdd,userName);
}
展开
 我来答
匿名用户
推荐于2017-12-15
展开全部
这是一个Annotation
Annotation接口的实现类: Documented, Inherited, Retention, Target 都是用来定义自己定义的Annotation类的。

1. 注解(Annotation)类,以@interface 修饰 ,不能显示(explicit)extends或implements任何类

如:

java 代码
public @interface DefineAnnotation {
}

这种没有任何属性的Annotation类,也叫标识Annotation

2. 定义属性

java 代码
//属性必须加个小括号
public String value() ;
//有默认值的属性
public String value() default "aaa";

完整定义如下:

java 代码
//注解Annotation类不能显示(explicit)extends或implements任何类
//不定义任何属性就叫maket annotation
public @interface DefineAnnotation {

//定义一个属性,有属性的话,必须赋值,除非有默认default
public String value() default "aaa";

}

3.使用Annotation,有默认值的可以不用传参数,也可以传递参数。没有默认值的,必须传递参数。

如:

java 代码
public class TestAnnotation {

// @DefineAnnotation 有默认值的第一种使用方式
// @DefineAnnotation() 有默认值的第二种使用方式
@DefineAnnotation("ttitfly")
public void say(){
System.out.println("say hello");
}
public static void main(String[] args){
TestAnnotation ta = new TestAnnotation();
ta.say();
}
}

4. Retention (保存)

所有的Annotation类都实现了Annotation接口
@Retention本身就是个Annotation(注解)类
它的值是个enum枚举类型的RetentionPolicy,该枚举类型RetentionPolicy有三个值RUNTIME (会被JVM加载,并可以通过反射来获得到Annotation类的信息) ,CLASS (不会被JVM加载),Source
@Retention的值标识自己定义的Annotation(注解)类 是属于哪种保存策略,将来哪个类如果使用了这个自定义的注解类,将会使用这种保存策略

如:

java 代码
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
//所有的Annotation类都实现了Annotation接口
//@Retention本身就是个Annotation(注解)类
//它的值是个enum枚举类型的RetentionPolicy,该枚举类型RetentionPolicy有三个值RUNTIME (会被JVM加载,并可以通过反射来获得到Annotation类的信息) ,CLASS (不会被JVM加载),Source
//@Retention的值标识自己定义的Annotation(注解)类 是属于哪种保存策略,将来哪个类如果使用了这个自定义的注解类,将会使用这种保存策略
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {

String hello() default "ttitfly";
String world();
}

java 代码
//使用自己定义的Annotation类
public class MyTest {
//一个方法可以有多个注解类
@Deprecated
@MyAnnotation(hello="china",world="earth")
public void say(){
System.out.println("say hello");
}

}

java 代码
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
匿名用户
2013-09-22
展开全部
这个是JDK1.5加入的新特性,annotation(泛型)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-22
展开全部
注解 ,从这个注解看,应该是spring的@service(创建对象)@Autowired(自动装配)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式