JavaEE之Spring核心设计与思想

前言:我们通常所说的Spring指的是Spring Framework,也就是我们常说的Spring框架,他是一个开源框架。有着活跃而庞大的社区,这就是它之所以经久不衰的原因。并且Spring也支持广泛的应用场景。

目录

1.我们先来看一个例子

2.控制反转IoC的实现

3.Spring项目得创建和使用

3.1创建Spring项目

3.1.1基于Maven创建Spring项目

3.1.2在Maven项目中添加Spring核心包

3.1.3 创建一个启动类,是为了测试Spring得功能:即存取对象和取出对象)

4. 将对象存储到Spring中

4.1先创建一个业务对象

4.2将对象存储到Spring中

5.从spring框架中读取存储的业务对象

5.1先获取Spring的上下文对象

​编辑 5.2通过Spring上下文对象来获取业务对象

 6.获取Bean对象的3种方式

6.1通过bean的id来获取

6.2通过类型来获取

6.3通过id+类型的方式来获取bean

7.获取Spring的另一种方式BeanFactory

8.更简单的读取业务对象

8.1配置

8.2使用注解将bean对象存储到spring中

8.2.1注解分类

 8.2.2创建一个普通类,添加main,方便后面演示

 8.3使用5种类注解实现对象存储在Spring框架

 8.4关于存储目录

 8.5 使用方法注解@Bean将对象存储到Spring中

 8.5.1@Bean重命名

9.@Controller、@Service、@Repository、@Component、@Configuration的关系

10.一个小细节

1.我们先来看一个例子

假设我们要造一辆车,我们就要先有车身,但是车身还要依赖底盘,底盘还要依赖轮胎。我们将这一系列过程想象成一个待实现的程序,程序如下:

public class NewCarExample {
    public static void main(String[] args) {

        Car car = new Car();
        car.run();
    }

    /**
     * 车身
     */
    static class Car{
        public void run(){
            Framework framework = new Framework();
            framework.init();
        }

    }

    /**
     * 底盘
     */
    static class Framework {
        public void init(){
            Bottom bottom = new Bottom();
            bottom.init();
        }

    }

    /**
     * 轮胎
     */
    static class Bottom{
        public void init(){
            Tire tire = new Tire();
            tire.init();
        }

        /**
         * 执行轮胎的方法
         */
        static class Tire{
            private int size = 30;
            public void init(){
                System.out.println("轮胎尺寸: " + size);
         }
       }
    }
}

        这里我们首先开始创建一个车,但是车又需要依赖车身,我们就创建一个车身。然后车身又需要依赖底盘,我们再自己创建一个底盘。底盘又需要依赖轮胎,我们再创建轮胎。但是这样太麻烦了,如果我们需要改变轮胎的参数,或者需要加一个自己想要的参数,那么就需要改变上面所有的类。因此我们需要改变这种做法。

2.控制反转IoC的实现

两组开发的区别:

小结:

看了上面的例子,我们就能大概明白什么叫Spring?

Spring就是包含了众多工具方法的IoC容器

如何理解Spring?

Spring就是一个容器,我们用的是时候,就是把对象存储到容器里面,需要的时候,把对象从容器里面取出来。

IoC是啥?有什么区别

IoC是控制反转,使用控制反转的思路可以实现依赖类之间的解耦,我们需要在当前类使用它的时候,把它注入进来就行。在底层依赖类发生变化的时候,无需关心他的具体实现和生命周期。因为IoC是把自己实现的依赖类的主权交给其他人来实现。

DI是依赖注入,是IoC的一种具体实现手段。指的是在程序运行的时候,动态的将对象注入到当前类的一种实现机制。

区别:IoC是指导思想,而DI是具体的实现手段

Spring的核心功能是啥?

Spring的核心功能是管理对象,将对象动态的注册进去,用的时候将对象取出来。

3.Spring项目得创建和使用

3.1创建Spring项目

3.1.1基于Maven创建Spring项目

 

3.1.2在Maven项目中添加Spring核心包

 别忘记点击重新导入:

此时我们得项目已经从Maven项目变成了Spring项目

3.1.3 创建一个启动类,是为了测试Spring得功能:即存取对象和取出对象)

 

4. 将对象存储到Spring中

4.1先创建一个业务对象

4.2将对象存储到Spring中

 

规范起见,我们起名叫spring.xml,后缀一定是xml 

5.从spring框架中读取存储的业务对象

5.1先获取Spring的上下文对象

 5.2通过Spring上下文对象来获取业务对象

 6.获取Bean对象的3种方式

6.1通过bean的id来获取

6.2通过类型来获取

6.3通过id+类型的方式来获取bean

7.获取Spring的另一种方式BeanFactory

8.更简单的读取业务对象

过程如下:

1)创建一个Maven项目

 2)引入spring-context/spring-beans框架,将Maven项目变为Spring项目

3)创建一个普通的类和main进行测试

这里的第一步就和上述的一样,我们直接从第二步开始:

8.1配置

8.2使用注解将bean对象存储到spring中

8.2.1注解分类

 8.2.2创建一个普通类,添加main,方便后面演示

 8.3使用5种类注解实现对象存储在Spring框架

注意:读取存入对象的id,默认情况下是首字母小写

 8.4关于存储目录

 8.5 使用方法注解@Bean将对象存储到Spring中

 8.5.1@Bean重命名

9.@Controller、@Service、@Repository、@Component、@Configuration的关系

 因此我们可以认为5个类注解其实就是1个,因为其他四个都是Component的子类

10.一个小细节

假设我们使用类注解Component来存对象到Spring中

 我们打开来Spring中获取beanName的源码来看:

 那么我们将前两个字母大写来看看效果:

 这一点我们一定要注意!!!

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值