常用注解
三个标注注解
@Override - 检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。
@Deprecated - 标记过时方法。如果使用该方法,会报编译警告。
@SuppressWarnings - 指示编译器去忽略注解中声明的警告。
四个元注解
@Retention - 标识这个注解怎么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问。
@Documented - 标记这些注解是否包含在用户文档中。
@Target - 标记这个注解应该是哪种 Java 成员。
@Inherited - 标记这个注解是继承于哪个注解类(默认 注解并没有继承于任何子类)
新版本注解
@SafeVarargs - Java 7 开始支持,忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。
@FunctionalInterface - Java 8 开始支持,标识一个匿名函数或函数式接口。
@Repeatable - Java 8 开始支持,标识某注解可以在同一个声明上使用多次。
javax 生命周期注解
@PostConstruct 初始化执行方法
@PreDestroy 销毁执行方法
@Resource 注解自带了“name”的val就是@Service注解的名称之一
spring 基础注解
@Controller @Service @Repository @Component @Configuration @Bean
@ComponentScan @Conditional @Transactional @Cacheable @Scheduled @EnableWebMvc 配置注解
@ControllerAdvice @ExceptionHandler 结合使用处理异常
@Profile @ActiveProfiles 结合使用激活配置注入bean
@Autowired 类型进行自动装配 @Qualifier 指定按名称进行装配 可结合使用 IOC
@Qualifier 的标注对象是成员变量、方法入参、构造函数入参
@Inject 与 @Autowored 只有细微差别, 按类型进行自动装配. 若按名称进行装配,则需要配合@Name
@Aspect @After @Before @Around 结合使用 AOP
@WebAppConfiguration @ContextConfiguration @RunWith 结合使用 @Test
mvc 注解
@RequestMapping
@ResponseBody
@RequestBody
@RequestParam
@PathVariable
@Scope 配置spring ioc中bean的实例化方式, 默认单例 singleton
singleton 在spring IOC容器中仅存在一个Bean实例,Bean以单实例的方式存在.
prototype 每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行new XxxBean()的操作.
request 每次HTTP请求都会创建一个新的Bean,该作用域仅适用于webApplicationContext环境.
session 同一个HTTP session共享一个Bean,不同HTTP session使用不同的Bean,该作用域仅适用于webApplicationContext环境。
globalSession同一个全局session共享一个Bean,一般用于portlet应用环境,该作用域仅适用于webApplicationContext环境。
springboot注解
@SpringBootApplication
@MapperScan
@ConfigurationProperties
@ImportResource
@EnableAutoConfiguration
@Enable*
spring boot项目注解的形式配置web.xml
servlet3.0规范中非常重要的一个类 可以通过java配置(注解等)代替web.xml,spring boot就是使用java代替了web.xml。
javax.servlet.ServletContainerInitializer负责web容器启动阶段被回调,在onStartup方法里注册servlet、filter、listener等。
spring-web包实现了这个类, 但如果还是想使用web.xml也是可以的, 在项目的src/main/webapp/WEB-INF目录下放置web.xml。
springboot的实现,在META-INF/services下配置了这个类SpringServletContainerInitializer, 让整个web容器启动后可以找到并启动这个类
spring boot项目配置servlet、filter、listener 采用原生Servlet3.0的注解进行配置,@WebServlet 、@WebListener、@WebFilter是Servlet3.0 api中提供的注解
@WebServlet(name = "MyServlet",urlPatterns = "*.do")
public class MyServlet extends HttpServlet {}
@WebFilter(urlPatterns = "/*", filterName = "MyFilter ")
public class MyFilter implements Filter {}
@WebListener
public class MyListener implements ServletContextListener {}
然后配置注解ServletComponentScan在spring boot启动类
@SpringBootApplication
@ServletComponentScan
public class TestApp{
public static void main(String[] args){
SpringApplication.run(TestApp.class, args);
}
}