29.Spring-基础.md

混江龙づ霸主 提交于 2020-02-02 03:56:28


1.目的和作用

解决对象的创建和以及对象依赖关系的!

  • Struts与Hibernate可以做什么事?
    Struts,
    Mvc中控制层解决方案
    可以进行请求数据自动封装、类型转换、文件上传、效验…
    Hibernate,
    持久层的解决方案;
    可以做到,
    把对象保存到数据库,
    从数据库中取出的是对象。
  • 传统的开发模式
    基于mvc模式进行项目开发;
    基于mvc的项目框架结构:
    Entity / dao / service / action
// 1. 实体类
class User{
}
 
 
//2. dao
class  UserDao{
.. 访问db
}
 
//3. service
class  UserService{
UserDao userDao = new UserDao();
}
 
//4. action
class  UserAction{
UserService userService = new UserService();
 
..
拿到数据或结果

}

思考:

  1. 对象创建创建能否写死?
  2. 对象创建细节
    对象数量
    action 多个 【维护成员变量】
    service 一个 【不需要维护公共变量】
    dao 一个 【不需要维护公共变量】
    创建时间
    action 访问时候创建
    service 启动时候创建
    dao 启动时候创建
  3. 对象的依赖关系
    action 依赖 service
    service依赖 dao

=======================================================
总结:
spring就是解决上面的问题的!

简单来说,就是处理对象的创建的、以及对象的依赖关系!


[toc]

2.概念

2.1框架的设计

  • 侵入式设计
    引入了框架,对现有的类的结构有影响;即需要实现或继承某些特定类。
    例如: Struts框架

  • 非侵入式设计

       引入了框架,对现有的类结构没有影响。
       例如:Hibernate框架 / Spring框架

2.2控制反转

nversion on Control , 控制反转 IOC
对象的创建交给外部容器完成,这个就做控制反转.

     依赖注入,  dependency injection 
               处理对象的依赖关系

     区别:

控制反转, 解决对象创建的问题【对象创建交给别人】
依赖注入,
在创建完对象后, 对象的关系的处理就是依赖注入 【通过set方法依赖注入】

2.3AOP

     面向切面编程。切面,简单来说来可以理解为一个类,由很多重复代码形成的类。
     切面举例:事务、日志、权限;

[toc]

3.

3.1Spring六大模块

  1. Spring Core spring的核心功能: IOC容器, 解决对象创建及依赖关系
  2. Spring Web Spring对web模块的支持。
    2.1 可以与struts整合,让struts的action创建交给spring

    2.2 spring mvc模式

  3. Spring DAO Spring 对jdbc操作的支持 【JdbcTemplate模板工具类】
  4. Spring ORM spring对orm的支持:
    4.1 既可以与hibernate整合,【session】
    4.2也可以使用spring的对hibernate操作的封装
  5. Spring AOP 切面编程
  6. SpringEE spring 对javaEE其他模块的支持


[toc]

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!