@SpringBootApplication
标注主程序类 说明一个spring boot应用
@SpringBootConfiguration
标注为spring boot配置类
@EnableAutoConfiguration
开启自动配置功能
@EnableConfigurationProperties(HttpEncodingAutoConfiguration.class)
启动指定类的ConfigurationProperties功能 并添加至IOC容器
@AutoConfigurationPackage
自动配置包
@Import({Registrar.class})
导入一个容器到组件
Registrar.class:将主程序所在包及其子包下的组件扫描到spring容器
EnableAutoConfigurationImportSelector.class:自动导入组件选择器
->AutoConfigurationImportSelector
->selectImports():决定导入spring容器到底导入那些组件 返回全类名形式
->getCandidateConfigurations():SpringFactoriesLoader.loadFactoryNames()从配置文件spring.factories中获取配置放置到容器
@EnableWebMvc
全面接管springMVC 所有spring mvc自动配置失效
@Bean
将方法的返回值分配到容器中 组件名为注明方法的名称
@PropertySource(value = {"classpath:/person.properties"})
@ImportResource(locations = {"classpath:beans.xml"})
导入spring配置文件,让配置文件内容生效
@Controller
声明为spring控制器
@ExceptionHandler(UserNotExistsException.class)
错误处理 标注方法 异常或自定义异常类的class
@ControllerAdvice
注册异常处理控制器
@RestController
等效于 @Controller加@RespanseBody
@Configuration
@MapperScan(value = "**.**.**")
将指定包中的所有接口自动默认为添加了mapper注解 value为包名称
@Mapper
指定这是一个操作数据库的mapper
mapper中方法sql操作数据
@Select("select * from department where id=#{id}")
@Delete("sql")
@Insert("sql")
@Update("sql")
@Options(useGeneratedKeys = true,keyProperty = "id")
设置是否使用自动生成的主键及其主键名称
@ConfigurationProperties(prefix = "person")
将本类中所有属性从全局配置文件中相关属性进行绑定
支持松散绑定语法
支持JSR303数据校验
@Conditional({OnClassCondition.class})
根据满足不同的条件后添加组件配置内容生效
@ConditionalOnWebApplication
判断当前应用是web应用
@ConditionalOnJndi
JNDI存在指定项
@ConditionalOnNotWebApplication
当前不是web环境
@ConditionalOnClass(CharacterEncodingFilter.class)
判断当前对象有没有这个类 CharacterEncodingFilter:springMVC乱码过滤器
@ConditionalOnMissingClass
如果系统没有这个类
@ConditionalOnResource
类路径下是否存在指定资源文件
@ConditionalOnProperty(prefix = "spring.http.encoding",value = "enabled",matchIfMissing = true)
判断配置文件中是否存在某个配置 matchIfMissing:不配置也生效
@ConditionalOnMissingBean(CharacterEncodingFilter.class)
如果容器中没有配置该组件再去配置此组件
@ConditionalOnBean(CharacterEncodingFilter.class)
如果容器汇总有该组件去配置组件
@ConditionalOnExpression
满足SpEL表达式指定
@Value("true")
为单个属性绑定配置文件变量
三种写法:@Value("true") @Value("#{11*2}") @Value("${person.last-name}")
不支持复杂封装对象的赋值
@Component
将本类注册为容器
@Validated
数据校验 必须是符合以下格式的数据
@Email
@Service
@SpringBootTest
@Test
@Autowired
@ResponseBody
声明为相应体
可以写在单个方法或者控制器类上声明类中所有方法为相应体
返回JSON格式数据
@RequestMapping("/hello")/(value = "/user/login",method = RequestMethod.POST)
声明为请求容器 返回前端界面
@PostMapping("/user/login")
声明为post方式请求容器
@GetMapping("/emp/{id}")
@PutMapping
@DeleteMapping
@RequestParam("user")
请求参数
@PathVariable("id")
获取path路径变量
@Target
@Retention
@Documented
当前注解可能被包含在javadoc中