网站建设流程要多少钱,什么是自媒体,cnu摄影网站,做网站的首页下拉列表#x1f6eb;更多知识总结见SpringBoot 2专栏 #x1f695;本篇知识点总结自尚硅谷雷神的视频 #x1f692;博主对于该知识尚在学习阶段 #x1f684;如果发现存在问题请毫不吝啬的指出 #x1f680;#x1f680;扎哇太枣糕的博客首页#x1f680;#x1f680; 目录
向… 更多知识总结见SpringBoot 2专栏 本篇知识点总结自尚硅谷雷神的视频 博主对于该知识尚在学习阶段 如果发现存在问题请毫不吝啬的指出 扎哇太枣糕的博客首页 目录
向容器注册组件Bean
注册组件的Component
条件装配Conditional
导入配置文件ImportResource
添加指定类的组件到容器Import
配置绑定ConfigrationProperties 向容器注册组件Bean 在Spring中向容器中注册一个Bean使用的是applicationContext.xml配置文件中的bean标签但是SpringBoot中使用的是MyConfig配置类中方法加Bean注解。这两种方式得到的结果是一样的只不过是两种不同的编码风格而已。 单纯的写代码还不行要想办法让容器知道你想要注册BeanSpring使用的方法是在web.xml中声明applicationContext.xml配置文件使其中的配置生效SpringBoot使用的是Configuration注解向容器中注册因为配置类其本身而言也是一个组件。 配置类中使用的注解Configuration向SpringBoot声明这是一个配置类相当于web.xml里的配置文件声明Bean向容器注册注解下面方法返回值对应的对象相当于bean标签。Bean注解还可以使用参数给对象命名相当于bean标签中的id属性。默认命名为注解下面的方法名 获取指定的组件 run.getBean()方法 容器中对象创建模式 默认为单例模式也就是在容器中创建好所有的对象当外部需要获取对象的时候跳过创建步骤直接去容器中拿即可所以说无论外部调用多少次组件注册方法获取的都是同一个对象。 当然还可以修改属性proxyBeanMethods(Bean方法代理模式)的值进行单例多例的切换属性值的改变导致SpringBoot底层拥有两种配置模式 Full(全配置)proxyBeanMethods为true单例判断容器中有没有该对象有则直接取无则创建Lite(轻量配置)proxyBeanMethods为false多例对象直接创建。相较于全配置的先判断再创建或者获取Lite直接创建节省了时间所以被称为是轻量级配置。 如果存在组件依赖的问题的话必须采用全配置。所谓的组件依赖就是说在容器中一个组件中的属性是另一个组件或者说使用到了另一个组件此时就称这个组件依赖于另一个组件。如果采用轻量配置的话这个组件中的属性将不是另一个组件对象虽然对象名称都一样但是地址不同。 注册组件的Component Component每一层都通用的注解用于注册组件到容器中相当于bean标签。缺点就是辨识度不高无法通过注解理清楚这是哪一层的业务 Controllercontroller层的作用相当于Component注解 Serviceservice层实现类的作用相当于Component注解 Repositorymapper层实现类的作用相当于Component注解 条件装配Conditional Conditional满足条件就向容器中注册组件 案例一ConditionalOnBean容器中的组件之间存在组件依赖当被依赖的组件不存在的时候不向容器中添加另一个组件 ⚠ 如果将这个注解放在类上的话 即是满足条件时类中的所有方法才能生效否则都不生效。 ⚠ 并且在类中的组件注册也是顺序的使用条件装配注解时会因为注册写在后面就被判断为不满足条件 案例二ConditionalOnMissingBean没有组件时进行装配 导入配置文件ImportResource ImportResource 添加指定类的组件到容器Import Import调用类中的无参构造器创建一个对象作为组件添加到容器中组件的默认名为类的全限名 配置绑定ConfigrationProperties ConfigrationProperties将实体类与配置文件的配置项相绑定直接给实体类中的属性注入数据。prefix属性是指定配置文件里引用属性的前缀且ConfigrationProperties必须配合Component注解使用才能让容器知道有这么一个绑定规则 如果ConfigrationProperties不配合Component注解使用的话还可以在配置类上使用EnableConfigurationProperties让容器知道有这么一个绑定规则属性为实体类的class文件