初识SSM框架

我们直接进入主题ssm是什么:s(SrpingMvc(UI))+spring(解耦)+mybatis(Dao).

前言

mvc:设计模式;所有的Browser/Server(前端页面+后端代码)项目,至今程序员说前后端分离,说是为了维护代码更方便管理,大部分的项目都有mvc思想一说,

M: Model 模型层,JavaBean,分成两种业务(业务逻辑Bean,数据存储bean)

V: Viwe 视图层 ,用户的操作页面/数据的展示页面来给客户看的

C: Controller 控制层,顾名思义是用来接收用户的请求(路径,参数),返回给用户具体的响应(页面,数据)

三层架构: 独属于Java的,在mvc之后出现的,是mvc的升级版

  1.  视图层 web,所有和页面相关的内容,都归此层(v+c)

  2. 业务逻辑层 :  service,处理程序中所设计到的判断,以及程序的执行流程(登录---判断用户的用户名,密码是否正确,转账--转出--转入)(业务逻辑)
  3. 数据持久层  dao,所有和数据库相关的都放在这个层中(JDBC,数据库存储Bean)

基于mvc和三层架构,对程序进行分包,分层

--前端

web编写所有程序的前端页面(独立于后端代码之外的)

--后端分包

controller包编写servlet

dao包 编写数据库的增删改查

entity 包 保存数据库查询出来的数据

高内聚低耦合

高耦合什么是高耦合:一旦一个类发生变化,整个程序需要修改的地方很多,导致整个程序需要大量修改源码,这样的话就违反了我们的只增不改的原理了,所以高内聚低耦合也不是没有道理,在学习过程中,对这个概念理解的不是很清楚,有兴趣的水友们可以了解一个这个,什么是高内聚低耦合这里就不做过多的解释了

Spring:

是一个轻量级 的控制反转(ioc)和面向切面(Aop)的容器框架

Spring文件夹构成

Spring的文档主页

Spring的jar包结构 

 spring下载的位置:JFrog (spring.io)

Spring的两大核心

  1. Ioc 控制反转  -反射--根据指定的类名,有jvm创建对象,此过程中,不会出现new关键字

        1.2 DI( dependency injection 依赖注入) 

2. aop 面向切面

IOC

通过 org.springframework.context.ApplicationContext 类,想要实例化对象看可以使用configuration metadata配置元文件,即XML(可拓展标记语言), Java annotations(Java注解), or Java code(Java代码)。

 Spring Ioc 入门案例

1项目结构

配置文件 

3.测试类

package cn.hp.spring;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class Test3 {

    public static void main(String[] args) throws BeansException {
        // 加载 spring 的配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("test.xml");
        Human p = context.getBean("p", Human.class);
        System.out.println(p.toString());
    }
}

 

package cn.hp.spring;

public interface Human {

}

public class People implements Human{
    // id 姓名 年龄
    private int id ;
    private String name ;
    private int age ;

    public People() {
    }

    public People(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "People{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

public class Person implements Human {
    // id 姓名 年龄
    private int id ;
    private String name ;
    private int age ;

    public Person() {
    }

    public Person(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值