组件注解
- 启动类所在的根包为product,启动类中的注解
SpringBootApplication
中元注解@ComponentScan
会默认扫描product的包及所有子包,如果这些包中的类加了组件注解,加了组件注解的,spring会为你创建对象
文章图片
文章图片
- 一种组件,一种数据,作用相同,为的是便于区分
文章图片
- 静态方法不能访问非静态成员,如下成员要用static修饰,加了static修饰后,变量就会常驻内存,直到程序走完才会释放
文章图片
- 单例模式分为饿汉式[预加载]和懒汉式[懒加载],因为创建时机不同,这样涉及作用域问题
- spring默认采用单例模式,比如1111服务器本来就很忙,还要去创建对象,这样会加大服务器开销
- Spring自动装配机制表现为:当Spring管理的类需要被自动赋值,或者Spring调用的方法的参数需要值时,Spring会自动从容器中找到何时的值,为属性/参数自动赋值.
- 当类的属性需要值时,可以在属性上加@Autowired注解,否则会报空指针异常
文章图片
- 可以通过构造方法,如果是单个构造方法,是不需要加@Autowired注解的
- 多个构造方法需要加注解,表示指定某个构造方法,否则启动会报错误
![在这里插入图片描述](https://img-blog.csdnimg.cn/10d28cc66a39406280a47f485bf69b67.png
- 无参和有参构造方法同时存在时,加载无参构造
- 开发工具建议使用构造方法注入,建议不要使用@Autowired,学术上构造方法注入,实际中不使用
- 组件扫描后,有组件注解的类才会被创建
- 错误建议及时报出来,建议required=true
- 每个Spring Bean都有一个名称,默认等于方法的名称,也可以指定名称
文章图片
文章图片
方式2:组件扫描 - 默认将类名首字母改为小写,此规则只适用于类名中第1个字母大写、第2个字母小写的情况,如果不符合此情况,则Bean Name就是类名
- 如果有两个实现类默认会报错
文章图片
- 通过@service(“xxx”) 指定哪个实现类
文章图片
- 名称冲突的三种解决方式:1 改变量名 2改bean名称 3qualifier
文章图片
文章图片
- 匹配规则:先按照类型找数量再匹配名称
- javax中的@Resource 后Spring造了@Autowired 开发工具给报错,这两个注解都能实现自动装配,只能加在属性,即为全局变量上
文章图片
文章图片
- @Autowired和@Resource区别:1.@Resource和@Autowired添加的位置不同 2.先匹配名字再匹配类型
文章图片
- DI是手段,IoC是结果
- IoC就是把手动创建对象交由Spring,即控制权交给Spring
- 设计表格时,至少一列不给宽度 用于匹配100%(取决于显示器和浏览器窗口给的宽度,都不指定,就是等宽
- align=center 表头和数据文字居中
- 先created,然后再mounted(更贴近准备就绪,执行时间稍晚),建议使用mounted,加载高清大图时,区别更加明显
推荐阅读
- Linux服务器|SpringCloud实用篇02
- web|Web全栈~32.深入理解synchronized
- Java从入门到精通(二)|Java中的循环语句
- java|计算平均成绩【JAVA】
- java|阿里面试官(如何测试接口幂等性())
- python|大学毕业第一年失恋,无暇找工作,送外卖的心酸,我哭了整整一个夜晚
- python|生成对抗网络gans_生成对抗网络gans简介
- SpringBoot|SpringBoot临时属性设置
- SpringBoot|SpringBoot整合第三方技术与MP常用功能