在注解的参数中要为一个属性配置多个值则应该使用数组,如value = {值1,值2}
启动类注解
@SpringBootApplication
:用在springboot的主启动类上,它导入了的@EnableAutoConfiguration
和@ComponentScan
这俩个注解。参数exclude = { DataSourceAutoConfiguration.class }
可禁用DataSourceAutoConfiguration
该配置类
@EnableAutoConfiguration
:它会开启springboot扫描你导入的spring-boot-starter
的依赖和第三方依赖,并根据这些依赖来猜测你想要怎么编写程序,从而帮你配置一些默认的配置(简化了spring的配置文件),在@SpringBootApplication
中已经默认导入了
@EnableAspectAutoProxy
:开启对AspectJ自动代理的支持
@EnableAsync
:开启异步方法的支持
@EnableScheduling
:开启计划任务的支持
@EnableWebMvc
:开启webMVC的配置支持(编写类继承WebMvcConfigurationSupport
类,并在该类上加上@Configuration
声明为配置类)
@EnableConfigurationProperties
:开启对@ConfigurationProperties注解配置Bean的支持;
@EnableJpaRepositories
:开启对SpringData JPA Repository的支持;
@EnableTransactionManagement
:开启注解式事务的支持;
@EnableCaching
:开启注解式的缓存支持
基本配置相关注解
@Configuration
:类注解。声明该类是一个配置类,相当于spring的applicationContext.xml
文件
@ComponentScan
:类注解。需要用在使用了@Configuration
注解的配置类上。该注解默认会扫描该类所在的包下所有的配置类,相当于之前的 <context:component-scan>
,在@SpringBootApplication
中已经默认导入了,可以在value属性中选择扫描哪些包
@Import
:类注解。需要用在使用了@Configuration
注解的配置类上。加载其他的配置类,这样你在其他的配置类上可以不加@Configuration
注解,参数应该是一个{xxx.class,xxx.class}
这样的Class类型的数组
@ImportResource
:类注解。需要用在使用了@Configuration
注解的配置类上。加载其他的xml配置文件。官方推荐springboot程序中尽量不要使用xml配置文件,如果要用就在配置类上使用该注解加xml配置文件
@Component
:类注解。将该类声明为一个spring容器中的bean
@Controller
:类注解。作用与@Component
注解相同。主要是在声明该类是一个Controller类
@Service
:类注解。作用与@Component
注解相同。主要是在声明该类是一个Service类
@Repository
:类注解。作用与@Component
注解相同。主要是在声明该类是一个Mapper/Dao类,一般不用该注解而用@Mapper
注解
@Mapper
:类注解。由mybatis提供,声明该类是一个Mapper/Dao类。mybatis会将有该注解的类(这里一般是个接口)用动态代理的方式生成代理类并注入到spring容器中
@Bean
:方法注解。需要用在配置类里的方法上。将该方法的返回值当成一个bean注入到spring容器中
@Autowired
:属性注解/方法注解。将spring容器中的bean按类型注入到该属性/该set方法
@Qualifier
:属性注解/方法注解。将spring容器中的bean按名称注入到该属性/该set方法
@Resource
:属性注解/方法注解。先按名称注入,如果没有名称与之对应按类型注入
@PropertySource
:类注解。需要添加value = {"classpath:test.properties"}
的属性来加载resource文件夹下的test.properties自定义配置文件,然后可以使用@Value
来导入配置信息(该注解只能加载.properties配置文件)
@Value
:属性注解。需要添加"${datasource.test}"
的属性来将配置文件中datasource.test
的值注入给该属性
@ConfigurationProperties
:类注解。需要添加(prefix = "datasource")
属性来将datasource
前缀的值自动按名称注入给该类中有相同名称的属性,需要在启动类中加入@EnableConfigurationProperties
才能使用
@Transactional
:方法注解。为该方法开启事务功能。需要在启动类中加入@EnableTransactionManagement
才能使用
springmvc相关注解
@ResponseBody
:类注解/方法注解。声明该类下所有方法/该方法的返回值将作为字符串(一般是json格式的字符串)返回,该注解会让springmvc的视图解析器失效
@RequestMapping
:类注解/方法注解。配置地址映射
@RestController
:类注解。@Controller
的替代,里面包含@Controller
和@ResponseBody
@RequestBody
:属性注解。一般用在方法的形参前面,表名该参数是从RequestBody里面取出来的,一般如果无法用某个实体类介绍所有参数,可以用Map或List来接收后遍历该集合来取参数
@PathVariable
:属性注解。一般用在方法的形参前面,需要在该方法的@RequestMapping
中地址映射时添加/{xxx}
来指定需要从url中获取的参数
@GetMapping
等@xxxMapping
:作用与@RequestMapping
类似,不过只会映射指定请求类型
@ControllerAdvice
:类注解。将该类声明为全局异常处理类或全局数据处理类。用参数(annotations = {xxx.class, xxx.class})
来绑定加了xxx
注解的类。
@ExceptionHandler
:方法注解。方法需要写在带有@ControllerAdvice
的类里。将该方法声明为异常处理方法。参数{a异常.class,b异常.class}
Servlet相关注解
@WebFilter
:类注解。该类需要实现Filter
接口来成为一个过滤器。参数(filterName = "过滤器名",urlPatterns = "拦截路径")
@WebServlet
:类注解。该类需要继承HttpServlet
类来成为一个Servlet。参数(name = "Servlet名",urlPatterns = "映射路径")