spring boot中部分注解的作用
这一节主要是对前面项目中的部分注解的作用进行解析。使用注解可以免去复杂的xml配置文件,使代码写起来更加方便。
首先是看一下启动类Application.java里面的注解@SpringBootApplication、@MapprerScan
@SpringBootApplication注解等同与使用@Configuration、@EnableAutoConfiguration和@CommponentScan及其默认属性
@EnableAutoConfiguration:启用Spring Boot的自动配置机制
@ComponentScan:在应用程序所在的包上启用@Component扫描
@Configuration:允许在上下文中注册额外的bean或导入额外的配置类
@MapperScan在Spring Boot整合Mybatis中,可以在mapper接口中添加@Mapper注解,将mapper注入到spring中,但是在每个mapper中都加入@Mapper注解会很麻烦,这时候就可以用@MapperScan注解来扫描包
经测试发现,@MapperScan注解只会扫描包中的接口,不会扫描类,所以可以在包中写Provider类。
@MapperScan(“com.demo.mapper”):扫描指定包中的接口
@MapperScan("com.demo..mapper"):一个代表任意字符串,但只代表一级包,比如可以扫到com.demo.aaa.mapper,不能扫到com.demo.aaa.bbb.mapper
@MapperScan(“com.demo.**.mapper”):两个*代表任意个包,比如可以扫到com.demo.aaa.mapper,也可以扫到com.demo.aaa.bbb.mapper
再看一下UsrController.java里面@RestController、@RequestMapping、@AutoWired、@ResponseBody、@AutoWirred
@RestController:它是作为一个Web@Controller存在的,用于专门接受传入的Web请求。
@RequestMapping:它提供了“路由”信息。如代码里面,它会告诉spring,任何带有/path的HTTP请求都会映射到home方法上去。
@AutoWired:自动导入依赖的bean。byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。当加上(required=false)时,就算找不到bean也不报错。
@ResponseBody这个注解可以放在方法上用来指示这个方法,返回的值直接写到Http的响应体中,不需要替换为Spring的Model或者解析为视图
@AutoWired:自动导入依赖的bean。byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。当加上(required=false)时,就算找不到bean也不报错。
实体类User.java中的注解
@Entity:@Table(name=”“):表明这是一个实体类。一般用于jpa这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略
@Id:表示该属性为主键。
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = “repair_seq”):表示主键生成策略是sequence(可以为Auto、IDENTITY、native等,Auto表示可在多个数据库间切换),指定sequence的名字是repair_seq。
@Column 1、当实体的属性与其映射的数据库表的列不同名时需要使用@Column标注说明,该属性通常置于实体的属性声明语句之前,还可与 @Id 标注一起使用。
2、@Column 标注的常用属性是name,用于设置映射数据库表的列名。此外,该标注还包含其它多个属性,如:unique、nullable、length、precision等。