初学spring(一)
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(一)相关推荐
- 初学spring mvc
初学spring mvc,自己学习做了hello world小例子,步骤如下: 1:从springsource.org下载spring的包,从apache.org下载common-logging的包( ...
- spring无法连接mysql_初学Spring——连接MySQL数据库的问题和解决
零:前言 初学Spring + Angular才不到一周时间,刚打开第一个Spring的示例项目,在运行时就出现了错误. 代码如下: *************************** APPLI ...
- [初学Spring Boot](2):单元测试报错:org.junit.runners.model.InvalidTestClassError:Invalid test class
本来: 是建项目时自动生成的测试类,结果还是报错了.大无语事件. 就是IDEA自建测试时导错包了. 注释掉的时原来自导的,换成短的就好了. 经查证,长的是升级版,junit5,spring boot版 ...
- 初学spring aop 注解遇到的问题
初学spring,对spring注解这块了解不是很多,现在注解替代了xml配置文件,原来的bean id 去哪里了呢? //@Service//默认类名 @Service("rmb" ...
- 初学Spring Boot
1.Spring Boot注解 (1)@SpringBootApplication开启了Spring的组件扫描和Spring Boot的自动配置,实际上,@SpringBootApplication是 ...
- [初学Spring Boot](1):打不开localhost:8080/hello
报如上错误:显示应用程序没有显式映射,也就是说,你的Controller(指示Spring某个类是否能够接收HTTP请求),没有映射到启动函数上. 解决办法: 在src/main/java/test/ ...
- 初学Spring遇到Unsupported class file major version 61 错误
网上寻找一番大概是JDK和Spring版本不对应.我用的是jdk17,开始我是用spring5.0.0版本不行,然后5.2.5版本还是不行. 然后在spring项目中找到了对应的版本,JDK17要用5 ...
- 还不懂spring IOC核心原理?200行代码带你手撸一个
Spring做为Java企业级应用的开源开发框架,早已成为Java后端开发事实上的行业标准,无数的公司选择Spring作为基础的开发框架. 使用Spring框架的人一定都听过Spring的IoC(控制 ...
- 谈谈对Spring IOC的理解
2019独角兽企业重金招聘Python工程师标准>>> 学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人 ...
最新文章
- 计算机网络知到马惜平答案,计算机网络实习用Dreamweaver搭建个人网站
- SAP S4HANA 实战LTMC - 打响了第一炮
- Day15模块(导入,使用)
- Spring整合ActiveMQ接收消息
- rabbitmq的启动命令和springboot整合使用rabbitmq
- fatal: unable to access ‘https://github.com/PanJiaChen/vue-element-admin.git/‘: OpenSSL SSL_read: Co
- SAP gateway standard mode和compatible mode的区别
- canvas 擦除动画_帧动画的多种实现方式与性能对比
- 使用Faster_RCNN做文本检测
- supercharge快充_电荷泵?双电芯?高压低流?盘点目前最全快充技术
- matlab如何打开word文档,matlab操作word
- 数据结构练习题——线性表
- 【网络经济与企业管理】选择题,精讲
- ESP8266从点灯到遥控小车(三)——组装小车,0代码开发APP控制小车
- python自动化 2 对象定位(1)
- 使用基于注意力的编码器-解码器实现医学图像描述
- 荐9个可以帮助你的公众号
- 电脑桌面计算机怎么设置,示例win7电脑桌面图片怎么设置
- JavaScript之jQuery番外篇【打地鼠游戏的制作讲解】
- php上传文件到99%就没,phpexcel读文件的时候cpu99%
热门文章
- linux0775权限,Linux权限管理
- 现代微波滤波器结构与设计_高功率射频及微波无源器件中的考虑和限制
- win10显示隐藏文件_如何在Mac上显示隐藏文件?苹果mac显示隐藏文件夹方法
- ae输出quicktime设置_AE大神再现酷炫神技能,AE中怎么输出带透明通道的视频文件!...
- 如何做好数字化体验管理,了解一下?
- 大学计算机演示文稿作业,(大学计算机作业.doc
- java 注释 连接,java – 如何使用JPA注释创建连接表?
- wireshark合并多个文件_小技巧:快速合并多个excel文件(收藏版)
- 天气模式_江西现罕见持续阴雨寡照天气 市民开启“花式吐槽”模式
- c++:vector用法