在java中如果方法上加@Override的注解的话,表示子类重写了父类的方法。当然也可以不写,写的好处是:
表示注解可用在哪里:类上、方法上、属性上等等
注解的生命周期:源文件中、字节码文件中、运行中
SOURCE 在源文件中有效(即源文件保留)
CLASS 在class文件中有效(即class保留)
RUNTIME 在运行时有效(即运行时保留)
放置在Springboot启动类上,表明该类是开启Springboot容器的入口,它是一个复合注解。里面包含了包扫描,自动注入,配置注入的功能。
1、@ComponentScan这个注解在Spring中很重要,它对应XML配置中的元素,@ComponentScan的功能其实就是自动扫描并加载符合条件的组件(比如@Component和@Repository等)或者bean定义,最终将这些bean定义加载到IoC容器中。
我们可以通过basePackages等属性来细粒度的定制@ComponentScan自动扫描的范围,如果不指定,则默认Spring框架实现会从声明@ComponentScan所在类的package进行扫描。
注:所有SpringBoot的启动类最好是放在root package下,因为默认不指定basePackages。
2、@ComponentScan告诉Spring 哪个packages 的用注解标识的类 会被spring自动扫描并且装入bean容器。
例如,如果你有个类用@Controller注解标识了,那么,如果不加上@ComponentScan,自动扫描该controller,那么该Controller就不会被spring扫描到,更不会装入spring容器中,因此你配置的这个Controller也没有意义。
3、参数的作用
basePackageClasses:对basepackages()指定扫描注释组件包类型安全的替代。
excludeFilters:指定不适合组件扫描的类型。
includeFilters:指定哪些类型有资格用于组件扫描。
lazyInit:指定是否应注册扫描的beans为lazy初始化。
nameGenerator:用于在Spring容器中的检测到的组件命名。
resourcePattern:控制可用于组件检测的类文件。
scopedProxy:指出代理是否应该对检测元件产生,在使用过程中会在代理风格时尚的范围是必要的。
scopeResolver:用于解决检测到的组件的范围。
useDefaultFilters:指示是否自动检测类的注释
@EnableAutoConfiguration 简单概括一下就是,借助@Import的支持,收集和注册特定场景相关的bean定义。
@EnableScheduling是通过@Import将Spring调度框架相关的bean定义都加载到IoC容器。
@EnableMBeanExport是通过@Import将JMX相关的bean定义加载到IoC容器。
而@EnableAutoConfiguration也是借助@Import的帮助,将所有符合自动配置条件的bean定义加载到IoC容器,仅此而已!
@EnableAutoConfiguration作为一个复合Annotation。
@SpringBootConfiguration继承自@Configuration,二者功能也一致,标注当前类是配置类,
并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。
关于java中元注解Inherited 的使用说明
首先解释下元注解,就是用来中声明注解类型时需要使用到的注解。
Inherited作用是,使用此注解声明出来的自定义注解,在使用此自定义注解时,如果注解在类上面时,子类会自动继承此注解,否则的话,子类不会继承此注解。这里一定要记住,使用Inherited声明出来的注解,只有在类上使用时才会有效,对方法,属性等其他无效。
相当于@Controller+@ResponseBody,接受客户端请求,并作出响应
由于现在流行前后端分离. 所以SpringMVC省略了视图解析和视图渲染.只有前5步. 核心注解: @ResponseBody 省略6-7步
将标志类创建的实例教给spring容器管理
将返回的对象转化为JSON串
将接收的JSON串转化为对象,一般在后端接收axios的put和post请求发送的参数时使用
规定了浏览器访问控制层方法的方式,一般用在类上边,作为该类统一的入口
与@RequestMapping不同的是,上边四种注解规定了具体的请求方式,一般用在方法上
加在参数前,用来获取RESTful请求方式中占位符{}中的值
参数名和请求参数名称不同时使用,可以设置默认值
跨域的解决方案之一,适用于单体架构
自动生成以下方法
get set toString hashCode equals
无参构造
全参构造
链式编程
依赖注入,用于描述两个类的关系
14
Tip:
value:表示你要注入的属性的值
index 表示参数下标
type 指定类型
scope 属性(表示bean的作用域) 可以通过执行springIOC容器来创建对象 的类型
prototype 原型模式(多例模式) 每次调用IOC容器的getBean方法,就会返回一个新的对象(地址)
singleton 单例模式 每次调用都会返回同一个对象
3. 工厂方法注入(很少使用,不推荐)
4. 泛型依赖注入(了解)
扫描DAO接口文件所在的包,value值为DAO接口所在的包名的全路径
如果不配置的话会报如下错误:
设置依赖注入的两种方式
1.按照类型注入
按照属性的类型 去Map集合中查找是否有改类型的对象. 如果有则注入.
2.按照名称注入 根据属性的name 去Map集合中查找对应的KEY
让Spring加载该pro文件,指定字符编码为utf8
可以从配置文件获取,也可以从配置中心获取
Mybatis为接口创建代理对象,JDK动态代理对象,Spring容器管理
说明:该注解是SpringBoot程序为了简化后端代码测试,提供了专门的测试AP
在实体类的日期中所添加的注解,不加默认认为是字符串,不是Date类型
定义全局异常的处理类,返回值是一个JSON串
表示拦截的异常的类型,如果类型匹配,则执行异常方法
事务控制,增删改,用于业务层
属性1: rollbackFor 可以配置特殊的异常类型.遇到某种异常回滚.
属性2: noRollbackFor 可以配置异常类型 遇到某种异常不回滚.
表示这是一个配置类,目的:封装对象,交给Spring容器管理
底层产生一个代理对象
描述的是一个方法,将方法的返回值对象,交给Spring容器管理
可以放在@Configuration或者@Component修饰的类里边