黑马Spring3天课程

sprnig核心思想:
1.IOC(控制反转)
2.AOP(面向切面编程)
在这里插入图片描述

学习spring目的
1.搞清楚@Bean的使用,以及IOC和AOP的使用方式,啥东西,什么时候可以放进spring容器里,什么时候能拿出来用
2.学习springMVC目的在于搞明白项目里注解的情况
3.成体系地学习springMVC为了搞明白Sping业务逻辑代码在哪里写

程序的"耦合"

耦合:程序间的依赖关系
包括:
类之间的依赖
方法间的依赖
解耦:
降低程序之间的依赖
实际开发中:
应该做到:编译期间不依赖,运行时才依赖
解耦的思路:
第一步:通过反射来创建对象,而避免使用new关键字
第二步:通过读取配置文件来获取要创建的对象的全限定类名
比如如下代码

public class JdbcDemo1{
    public static void main(String[] args)throws Exception{
        //注册驱动
        //方式1.使用new,如果没有导入com.mysql.jdbc.Driver会error错误(编译错)
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        //方式2.使用反射机制创建,没有导入com.mysql.jdbc.Driver会Exception错误(运行时异常)
        Class.forName("com.mysql.jdbc.Driver");
    }
}

介绍spring框架使用的那几节课
讲IOC的节课,新建工程走一遍流程即可,因为那个课大部分时间是在测试"生命周期,单例多例"

在样例中获取依赖

ac是spring容器对象,从spring中拿东西只需要ac.getBean(id=“xxx”)

"注入"的定义

spring对象存储bean的"容器"和我们自己实现的IOC工厂一样,是一个Map<String,Object>类型

"注入"指的是向spring创建的bean对象中,放入内容信息
(由于bean对象在spring容器内部,无法直接调用此对象的方法,所以需要"注入"操作)
方法1: 使用有参数构造函数初始化bean对象的内容
方法2: 使用get和set方法设置bean对象内容

总结性

讲"注入"之前的几天的课程都没有使用"注解",而是直接获取spring容器,同时使用"."语法调用spring的方法,这种语法简单明确便于学习

使用spring框架过程

(程序里)创建spring对象->(xml配置文件里)根据bean配置文件在sring对象的容器中创建bean对象,根据配置文件向bean对象注入内容->(程序里)在另一个地方通过spring对象.getBean()获取到spring里面的bean

spring对象存储bean的"容器"和我们自己实现的IOC工厂一样,是一个Map<String,Object>类型
创建对象,必须提供id(就是map的key)

使用注解的时候要在spring配置文件中加上"包扫描"标签context:component-scan,才能使用@component注解在spring容器中创建对象

目标达成

1.了解了spring框架的架构与内部原理
2.了解了常用注释@Autowired @Resources @value是什么
3.了解了@Configer @Bean注释的xml模样,实际上也就是spring的"对象创建+bean内容注入"配置文件

接下来详细分析这些内容
@Autowired注解可标注在Fields,Methods,Parameters这几种类型之前
Fields(反射机制中的"变量"叫法)
@Autowired 注解是"从spring容器里取出一个对象",然后"注入"(赋值给)另一个变量的做法.此"被注入的变量"可以也是一个spring容器管理的对象,好像也可以不是spring管理的对象
@Qualified注解要和@Autowired一起使用,用于给@Autowired添加限定符(因为@Autowired是依照类型+变量名 自动注入,有时候不太好用)
@Resources(name="")是自带限定符的@Autowired,参数"name"填写spring容器内Bean对象的id,即可精确查找

@Component出现于P30,写在一个自己建立的类之前,用于在spring容器中创建这个对象

按照spring整个设计架构分块归类注解

Spring架构

(程序里)创建spring对象->(xml配置文件里)根据bean配置文件在sring对象的容器中创建bean对象,根据配置文件向bean对象注入内容->(程序里)在另一个地方通过spring对象.getBean()获取到spring里面的bean

注解归类

创建对象的注解:
@Component
创建对象也可以在spring的xml文件中创建

注入内容的注解:
@Autowired+@Qualified @Resources (从spring中拿出对象,然后"注入"给spring内的另一个对象)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值