1.spring 在ssh 中所处的位置

struts 是web框架(jsp,action,actionform)

hibernate 是orm框架,处于数据持久层

spring 是容器框架,配置bean和管理bean之间的关系,其中 ioc(inverse of control) 即控制反转,和di (dependency injection) 依赖注入 是spring的核心。

2.开发一个简单spring项目的流程

a.引入开发spring项目所需的jar包: spring.jar(最小配置),日志包common-logging.jar

b.创建一个spring的核心配置文件 applicationContext.xml [hibernate有核心 hibernate.cfg.xml struts核心文件 struts-config.xml], 该文件一般放在src目录下,

该文件中引入 xsd文件 :可以从给出的案例(spring源代码包)中拷贝一份.

说明:

<!--
                  bean元素的作用就是,当框架加载的时候,容器就会自动创建一个bean的实例,  类似 UserService us = new UserService();
                  property元素的作用就是,创建实例后给实例的属性注入值, 类似 us.setName("spring"); 
           -->
    <bean id="userService" class="com.service.UserService">
        <property name="name">
            <value>spring</value>
        </property>
    </bean>

3.创建实体bean,核心部分代码

1 ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");  //得到容器对象2
3 UserService us = (UserService) ac.getBean("userService");                              //实例化bean4
5 us.sayHello();

4.Ioc(inverse of control 控制反转)  和 Dj (dependency injection 依赖注入)

控制反转: 把创建和维护对象的权力从代码中转移到spring容器(applicationContext.xml)中

<bean id="userService" class="com.service.userServce">

<property name="name" vlaue="spring"/>

<property name="helloService" ref="helloService"/>

</bean>

<bean id="helloService" class="com.service.helloServce">

<property name="words" vlaue="hello"/>

</bean>

在这段配置中体现了spring的三个特点:

a.配置bean

b.注入属性

c.维护bean与bean之间的关系

使用时通过getBean(bean_id) 来获取对象实例。

在UserServce 类中 有这样一段代码:

.....

private HelloServce helloServce;

....

并为其创建get 和 set 方法。此时如果没有实例化 helloServce,在UserServce 类直接调用 helloServce对象引用中的方法,肯定是报错的。

通过在applicationContext.xml中配置上述代码后,则可以直接调用。这也正好体现了spring的特点所在。

spring的底层实现机制可以采用 dom4j 和 java的反射机制来实现,结合HashMap 来维护实例对象的关系。

spring实际上是一个容器框架,可以维护web层,业务层,dao层(持久层)的各个组件,

注:struts主要充当web层,接管jsp/action/表单等,主要体现在数据输入,数据处理以及数据的展示。有包含view以及control层。

        在mvc这个概念中,model层包含 业务层,dao层以及持久层。

说明:部分内容摘录自网络

转载于:https://www.cnblogs.com/yiliweichinasoft/p/3474574.html

初学spring(一)相关推荐

  1. 初学spring mvc

    初学spring mvc,自己学习做了hello world小例子,步骤如下: 1:从springsource.org下载spring的包,从apache.org下载common-logging的包( ...

  2. spring无法连接mysql_初学Spring——连接MySQL数据库的问题和解决

    零:前言 初学Spring + Angular才不到一周时间,刚打开第一个Spring的示例项目,在运行时就出现了错误. 代码如下: *************************** APPLI ...

  3. [初学Spring Boot](2):单元测试报错:org.junit.runners.model.InvalidTestClassError:Invalid test class

    本来: 是建项目时自动生成的测试类,结果还是报错了.大无语事件. 就是IDEA自建测试时导错包了. 注释掉的时原来自导的,换成短的就好了. 经查证,长的是升级版,junit5,spring boot版 ...

  4. 初学spring aop 注解遇到的问题

    初学spring,对spring注解这块了解不是很多,现在注解替代了xml配置文件,原来的bean id 去哪里了呢? //@Service//默认类名 @Service("rmb" ...

  5. 初学Spring Boot

    1.Spring Boot注解 (1)@SpringBootApplication开启了Spring的组件扫描和Spring Boot的自动配置,实际上,@SpringBootApplication是 ...

  6. [初学Spring Boot](1):打不开localhost:8080/hello

    报如上错误:显示应用程序没有显式映射,也就是说,你的Controller(指示Spring某个类是否能够接收HTTP请求),没有映射到启动函数上. 解决办法: 在src/main/java/test/ ...

  7. 初学Spring遇到Unsupported class file major version 61 错误

    网上寻找一番大概是JDK和Spring版本不对应.我用的是jdk17,开始我是用spring5.0.0版本不行,然后5.2.5版本还是不行. 然后在spring项目中找到了对应的版本,JDK17要用5 ...

  8. 还不懂spring IOC核心原理?200行代码带你手撸一个

    Spring做为Java企业级应用的开源开发框架,早已成为Java后端开发事实上的行业标准,无数的公司选择Spring作为基础的开发框架. 使用Spring框架的人一定都听过Spring的IoC(控制 ...

  9. 谈谈对Spring IOC的理解

    2019独角兽企业重金招聘Python工程师标准>>> 学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人 ...

最新文章

  1. 计算机网络知到马惜平答案,计算机网络实习用Dreamweaver搭建个人网站
  2. SAP S4HANA 实战LTMC - 打响了第一炮
  3. Day15模块(导入,使用)
  4. Spring整合ActiveMQ接收消息
  5. rabbitmq的启动命令和springboot整合使用rabbitmq
  6. fatal: unable to access ‘https://github.com/PanJiaChen/vue-element-admin.git/‘: OpenSSL SSL_read: Co
  7. SAP gateway standard mode和compatible mode的区别
  8. canvas 擦除动画_帧动画的多种实现方式与性能对比
  9. 使用Faster_RCNN做文本检测
  10. supercharge快充_电荷泵?双电芯?高压低流?盘点目前最全快充技术
  11. matlab如何打开word文档,matlab操作word
  12. 数据结构练习题——线性表
  13. 【网络经济与企业管理】选择题,精讲
  14. ESP8266从点灯到遥控小车(三)——组装小车,0代码开发APP控制小车
  15. python自动化 2 对象定位(1)
  16. 使用基于注意力的编码器-解码器实现医学图像描述
  17. 荐9个可以帮助你的公众号
  18. 电脑桌面计算机怎么设置,示例win7电脑桌面图片怎么设置
  19. JavaScript之jQuery番外篇【打地鼠游戏的制作讲解】
  20. php上传文件到99%就没,phpexcel读文件的时候cpu99%

热门文章

  1. linux0775权限,Linux权限管理
  2. 现代微波滤波器结构与设计_高功率射频及微波无源器件中的考虑和限制
  3. win10显示隐藏文件_如何在Mac上显示隐藏文件?苹果mac显示隐藏文件夹方法
  4. ae输出quicktime设置_AE大神再现酷炫神技能,AE中怎么输出带透明通道的视频文件!...
  5. 如何做好数字化体验管理,了解一下?
  6. 大学计算机演示文稿作业,(大学计算机作业.doc
  7. java 注释 连接,java – 如何使用JPA注释创建连接表?
  8. wireshark合并多个文件_小技巧:快速合并多个excel文件(收藏版)
  9. 天气模式_江西现罕见持续阴雨寡照天气 市民开启“花式吐槽”模式
  10. c++:vector用法