第9天:Spring(1)

# 1.Spring框架简介

回忆:

    Mybatis框架:ORM框架

    一个半自动的(Object)对象-(Relation)关系型数据库(Mapping)映射框架

    作用在MVC设计模式的M(Model 数据模型层)层

    Mybatis替换了JDBC技术

简介:

    Spring框架 

    一个作用在C(Controller 控制器层)层的框架

    原生的Java Web项目,C层使用Servlet进行开发

    Spring(MVC)框架可以替换C层中的Servlet,让整个Java Web项目的结构更简单—代码更少 

Spring框架的特性:

   IoC/DI:说的是一件事

        IoC:Inverse of Control:控制反转

          原始的Java对象的来源是程序员在项目代码中手动new出来

          IoC所指的,就是剥夺程序员这个new对象的权利,让new对象这个事儿交给Spring框架去做

          原先是自产自销,现在是国家分配

          现在如果我们需要一个Java对象(例如在UserService中需要一个UserDAOImpl对象)

          那么不要自己new,向Spring提出需求,由Spring给你一个对象

        DI:Dependency Injection:依赖注入

          Spring框架自己本身也不生成Java对象,仅用来保存和分配Java对象

          也就是说,Spring利用IoC容器容纳项目中必须的Java对象,并且在合适的时候将这个对象分配出去

        这个对象所有用到的属性需要在Spring的配置文件中进行声明,而不是在new的时候进行赋值

          例如:汽车想要运行,依赖于发动机和车轮,那么体现汽车和发送机、车轮之间的关系 就是通过Spring的配置文件进行的

         过程称之为依赖注入

        AOP:面向切面编程 Aspect Oriented Programming

          面向切面编程是对面向对象编程(OOP)的一种补充

          原先构建一个对象:new一个对象,这个对象有属性,有方法

            对象方法的定义:返回值、方法名、参数列表 + 方法体

          例子:之前的用户登录状态验证,需要在每一个用户动作(方法)之前都对用户的登录状 态进行验证

          但是使用AOP之后,可以将用户登录状态验证作为一个“切面”,加入到每一个用户动作之 前——取代复制粘贴

# 2.一个简单的Spring案例

    一个Java Web的用户登录功能:

    总结使用Spring管理JavaBean的流程:

    1.创建一个Spring的对JavaBean管理的全局配置文件:

    spring-bean.xml(applicationContext.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--
    EmpMapperImpl empMapperImpl = new EmpMapperImpl();

    在Spring这个容器中(IoC容器)声明一个UserDAOImpl对象
    也就是说,以后凡是用到UserDAOImpl对象的地方都不用手动new了,都是从IoC容器中申请

    id:指定当前IOC容器创建对象的变量名称
    class:指定当前IOC容器创建对象的类型

    bean标签的属性:
     class:声明装在Spring IOC容器中的对象(bean)的类型
     id:给这个对象(bean)起一个名字

    -->


    <bean id="empMapperImpl" class="com.huade.mapper.EmpMapperImpl"></bean>

</beans>

通过这个配置文件,Spring IOC容器将能够得知当前项目中需要哪些对象(Bean)

2.在Java代码中声明一个ClassPathXmlApplicationContext对象,这个对象就是Spring IOC容器对 象(炒豆的锅):

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("config/spring-config.xml");

3.在需要使用Java对象的地方,声明从Spring IOC容器中获取一个JavaBean对象(从炒豆的锅里 拿出一个豆):

UserDAO userDao = (UserDAO) ctx.getBean("userDaoImpl");

注意:在实例化Spring IOC容器的时候,需要保证一个项目中只能够有一个IOC容器(锅)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fwy洛伦兹力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值