Spring容器

97 阅读4分钟

Spring容器

复习

1、OOAD --- 面向对象的分析与设计

2、如何评判一个设计的优劣?--- “高内聚、低耦合”。一个模块自身的职责应该尽量不要分散,该他做的事情就自己独立完成了,不该他做的事情就不要去涉及了。--- 内聚;耦合讲的是模块与模块之间的关联关系。

3、在具体分析设计的时候,我们提出了一些设计原则:

3-1、单一职责

3-2、开闭原则 -- 开是指可以增加新的内容,关是指不应该动到已有的内容 -- 它是所有原则的总纲,其他原则在某种层度上都是在一个方面对于开闭的实现。

3-3、里氏替换 -- 它是一个描述在继承的时候要使用的原则。-- 系统中凡是父类能够正确工作的地方,你引入的子类都要能够正常工作,不能引起额外的错误。

3-4、依赖倒转 -- 上层模块需要绑定下层模块的抽象,不要绑定它的具体实现。 -- 调用者的功能完成需要调用到被调用者的行为(依赖)。形成依赖的话,调用者就需要关联被调用者。关联的目的是为了调用对方的实现行为,来帮被调用者完成自己的实现。但本原则告诉我们应该倒转一下,不要去绑定对方的实现,而是绑定它的抽象。

public class UserService(){
    private UserDAO dao;
    public boolean login(){
        String username = ......
        String password = ......
        
        User user = dao.getUserByNamePwd(....);
        if(user != null){
           return true;     
        }
        return false;
    }
}

public interface UserDAO{
    public User getUserByNamePwd(String ,String);
}

public class FileUserDAO implements UserDAO{
    //用文件的方式重写getUserByNamePwd
}

public class DBUserDAO implements UserDAO{
    //用了数据库的方式重写
}

3-5、接口隔离原则 --- 最小接口原则 --- 不要定制大而全的上层接口,因为它有可能会“污染”下层的接口或实现类,让它们具备了它们不需要的方法。我们应该在上层接口的设计当中体现出“隔离”特性,把大而全改为小而专的多个小接口,然后让下层的接口和实现类可以任意组合,只选择属于他们自己职责范围的上层接口。

3-6、组合/聚合原则 --- 少用继承,多用属性或参数的形式进行关联关系的绑定。

3-7、迪米特法则 --- 最少知识原则 --- 模块只绑定跟它有关系的模块

4、模式是比设计原则更具体的,更能够让大家在实现过程中去操作的设计“套路”。 模式与编程语言无关,与编程平台无关,甚至以后你们会发现很多模式与编程无关。

5、模式分两种“设计模式”和“架构模式”。设计模式是编程级别的,是对某一个具体的问题域进行实现;架构模式是宏观的,是对整个工程项目的组织结构进行搭建。

6、设计模式的学习 --- 该模式解决什么问题域? 该模式叫什么名字? 如何实现?如果一个模式有多种实现,每种的优缺点是啥?

7、23种设计模式;设计模式又分3种“创建模式”、“结构模式”、“行为模式”

7-1、单例模式 (用得多,考得多,见得多 )

7-2、工厂模式 (用得多,见得多)

7-3、原型模式 (考得多,见得多)

7-4、建造者模式 (有可能会看到)

以后会补充的:

7-5、门面模式

7-6、桥梁模式

7-7、装饰器模式

7-8、策略模式

7-9、命令模式

7-10、代理模式

7-11、适配器模式

7-12、观察者模式

7-13、模版方法模式

8、架构模式 --- 重点掌握三层架构

Spring容器的作用

Spring框架是非常庞大的一个框架,它的使用遍布了整个Java后台应用的开发,没有哪个公司用Java开发不用Spring,是各位同学后面学习的重中之重。

我们在这个阶段,我们只学习Spring框架当中最基本一个功能(当然也是最核心的)---Spring容器。它主要实现了两种技术:IOC 和 AOP。

IOC - 控制反转,也被称为DI(依赖注入);

AOP - 面向切面编程 -- 它是OOP的一个补充。

Spring容器负责产生对象和管理对象

这样的话,我们的代码当中不再需要自己去new对象了,而是通过配置告知Spring容器,他需要产生哪些对象。当我们要用对象的时候,只需要找它要就可以了。

Spring容器还可以管理对象与对象的关联关系

Spring容器当中的对象,还可以根据我们的配置,完成对象与对象的关联关系。

Spring容器的配置

1、能够建立带Spring容器的工程

2、掌握把自己写的类,交给Spring去产生对象

2-1、给这个类添加@Component注解;

2-2、书写自定义的注解配置类,使用@Configuration和@ComponentScan

2-3、把武器对象注入到战士对象@Autowired

3、能通过上下文取出战士对象,调用攻击行为查看效果;