IV XXSC-10

组件注解

  • 启动类所在的根包为product,启动类中的注解SpringBootApplication中元注解@ComponentScan会默认扫描product的包及所有子包,如果这些包中的类加了组件注解,加了组件注解的,spring会为你创建对象
    IV XXSC-10_第1张图片
    IV XXSC-10_第2张图片
  • 一种组件,一种数据,作用相同,为的是便于区分
    IV XXSC-10_第3张图片

单例模式

  • 静态方法不能访问非静态成员,如下成员要用static修饰,加了static修饰后,变量就会常驻内存,直到程序走完才会释放
    在这里插入图片描述
  • 单例模式分为饿汉式[预加载]和懒汉式[懒加载],因为创建时机不同,这样涉及作用域问题
  • spring默认采用单例模式,比如1111服务器本来就很忙,还要去创建对象,这样会加大服务器开销

自动装配机制

  • Spring自动装配机制表现为:当Spring管理的类需要被自动赋值,或者Spring调用的方法的参数需要值时,Spring会自动从容器中找到何时的值,为属性/参数自动赋值.

  • 当类的属性需要值时,可以在属性上加@Autowired注解,否则会报空指针异常
    IV XXSC-10_第4张图片

  • 可以通过构造方法,如果是单个构造方法,是不需要加@Autowired注解的

  • 多个构造方法需要加注解,表示指定某个构造方法,否则启动会报错误
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/10d28cc66a39406280a47f485bf69b67.png

  • 无参和有参构造方法同时存在时,加载无参构造

  • 开发工具建议使用构造方法注入,建议不要使用@Autowired,学术上构造方法注入,实际中不使用

  • 组件扫描后,有组件注解的类才会被创建

  • 错误建议及时报出来,建议required=true

组件扫描的两种方式

方式1:Spring Bean

  • 每个Spring Bean都有一个名称,默认等于方法的名称,也可以指定名称
    IV XXSC-10_第5张图片
    IV XXSC-10_第6张图片
    方式2:组件扫描
  • 默认将类名首字母改为小写,此规则只适用于类名中第1个字母大写、第2个字母小写的情况,如果不符合此情况,则Bean Name就是类名
  • 如果有两个实现类默认会报错
    IV XXSC-10_第7张图片
  • 通过@service(“xxx”) 指定哪个实现类
    在这里插入图片描述
  • 名称冲突的三种解决方式:1 改变量名 2改bean名称 3qualifier
    IV XXSC-10_第8张图片
    IV XXSC-10_第9张图片
  • 匹配规则:先按照类型找数量再匹配名称
  • javax中的@Resource 后Spring造了@Autowired 开发工具给报错,这两个注解都能实现自动装配,只能加在属性,即为全局变量上
    IV XXSC-10_第10张图片
    IV XXSC-10_第11张图片
  • @Autowired和@Resource区别:1.@Resource和@Autowired添加的位置不同 2.先匹配名字再匹配类型
    IV XXSC-10_第12张图片

依赖注入和控制反转

  • DI是手段,IoC是结果
  • IoC就是把手动创建对象交由Spring,即控制权交给Spring

设计展示页面

  • 设计表格时,至少一列不给宽度 用于匹配100%(取决于显示器和浏览器窗口给的宽度,都不指定,就是等宽
  • align=center 表头和数据文字居中
  • 先created,然后再mounted(更贴近准备就绪,执行时间稍晚),建议使用mounted,加载高清大图时,区别更加明显

你可能感兴趣的:(框架,java,spring,开发语言)