注解:
概念:说明程序的,给计算机看的。
注释:用文字描述程序的,给程序员看的
JDK中预定义的一些注解
@Override:检测被该注解标注的方法是否是继承自父类(接口)的
@Deprecated:该注解标注的内容,表示已过时
@SuppressWarnings:压制警告
一般传递参数all @SuppressWarnings("all")
get与post的区别
自定义注解
格式:
元注解
public @interface 注解名称{}
本质:注解本质上就是一个接口,该接口默认继承Annotation接口
属性:接口中的抽象方法
要求:
1、属性的返回值类型有下列取值
基本数据类型
String
枚举
注解
以上类型的数组
2、定义了属性,在使用时需要给属性赋值
1、如果定义属性时,使用default关键字给属性默认初始化值,则使用注解时,可以不进行属性的赋值
2、如果只有一个属性需要赋值,并且属性的名称是value,则value可以省略,直接定义值即可
3、数组赋值时,值使用{}包裹。如果数组中只有一个值,则{}可以省略
元注解:用于描述注解的注解
@Target:描述注解能够作用的位置
ElementType取值:
TYPE:可以作用于类上
METHOD:可以作用于方法上
FIELD:可以作用于成员变量上
@Retention:描述注解被保留的阶段
@Retention(RetentionPolicy.RUNTIME):当前被描述的注解,会保留到Class字节码文件中,并被JVM读到
@Documented:描述注解是否被抽到api文档中
@Inherited:描述注解是否被子类继承
@Resource
和
@Autowired
注解都是用来实现依赖注入的。当使用
@Autowired
和
@Resource
时,表名我需要这个属性、方法或字段,但是并不需要我自己去new一个,只需要使用注解,
spring
容器会自动的将我需要的属性、方法或对象创造出来。只是
@AutoWried
按
by type
自动注入,而
@Resource
默认按
byName
自动注入。
@
Service
service 是有用的相当于 xml配置中得bean id = service 也可以不指定 不指定相当于 bean id = com. service.service 就是这个类的全限定名,表示给当前类命名一个别名,方便注入到其他需要用到的类中;
加的话 可自己定义,或者是为了区分使用其他@Service 直接使用当前类名,但是首字母小写
@Service("lwApiCompanyServiceImpl ")
public class LwApiCompanyServiceImpl implements LwCompanyService {}
不加的话,默认别名就是当前类名,但是首字母小写
@Service
public class LwApiCompanyServiceImpl implements LwCompanyService {}
@Mapper
和
@Repository
注解
1
、使用
@Mapper
后,不需要在
spring
配置中设置扫描地址,通过
mapper.xml
里面的
namespace
属性对应相关的
mapper
类,
spring
将动态的生成
Bean
后注入到
ServiceImpl
中
2
、
@repository
则需要在
spring
中配置扫描包地址,然后生成dao层的
bean
,之后被注入到
Service
Impl中,
@Repository注解可以标记在任何的类上,用来表明该类是用来执行与数据库相关的操作(即dao对象),并支持自动处理数据库操作产生的异常
@PathVariable
注解
指定url变量名,得跟
@GetMapping
注解(或其他请求注解)中的参数名统一
@Async
注解
@Async
注解一般用在类的方法上,如果用在类上表示这个类所有的方法都是异步的
调用异步方法类上需要配置上注解
@EnableAsync
@RequestBody
接收的参来自请求体,
get
请求中不可以使用
@RequestBody
@RestController
就是
@Controller
和
@ResponseBody
两个的结合体,因为在
Controller
类上只加
@Controller
注解的话,无法返回
json
数据,所以需要在加上
@ResponseBody
注解。但是使用
@RestController
这个注解就不能返回
jsp,html
页面了
@ResponseBody
注解的作用是将
controller
的方法返回的对象通过适当的转换器转换为指定的格式之后,写入
response
对象的
body
区,通常用来返回
JSON
数据后者
XML
数据,需要注意的是,在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过
response
对象输出指定格式的数据