




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Spring+SpringMVC+MyBatis讲义1Spring的基本应用1 Spring的基本应用1.1 Spring概述1.1.1 什么是Spring?1) Spring是开源的轻量级框架2) Spring核心主要两部分:Aop:面向切面编程,扩展功能不是修改源代码实现IoC:控制反转,比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,需要用new创建类的对象,再使用对象调用方法。控制反转把对象的创建不是通过new方式实现,而是交给Spring配置,创建类对象。3)Spring是一站式框架Spring在JavaEE三层结构中,每一层都提供不同的解决技术Web层:SpringMVCService层:Spring的IOCdao层:spring的JDBCTemplate、与ORM框架的整合4)spring版本Spring4.x1.1.2 Spring的目录结构docs文件夹中包含API文档和开发规范libs文件夹中包含JAR包和源码Schema文件夹中包含开发所需要的schema(约束)文件核心jar包:spring-core-4.3.6.RELEASE.jarspring-beans-4.3.6.RELEASE.jarspring-context-4.3.6.RELEASE.jarspring-expression-4.3.6.RELEASE.jar第三方依赖包:commons.logging的JAR包1.2 spring的核心容器1.2.1 BeanFactory基础类型的IOC容器,主要负责初始化各种Bean,并调用他们的生命周期方法。创建BeanFactory实例时,需要提供Spring所管理容器的详细配置信息,这些信息通常采用XML文件形式来管理,如:applicationContext.xml1.2.2 ApplicationContextBeanFactory的子接口,不仅包含了BeanFactory的所有功能,还添加了对国际化、资源访问、事件传播等方面的支持。通过ClassPathXmlApplicationContext创建 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(String configLocation);configLocation参数用于指定spring配置文件的名称和位置。如果其值为“applicationContext.xml”,则spring会去类路径(classPath)中查找名称为applicationContext.xml的位置文件在web项目中,ApplicationContext容器的实例化工作会交给web服务器来完成,通常会使用基于ContextLoaderListener实现的方式,只需要在web.xml中添加如下代码,后面讲3大框架整合时将采用此种方式: contextConfigLocation classpath:spring/applicationContext.xml org.springframework.web.context.ContextLoaderListener创建spring容器后,就可以获取spring容器中的Bean,方法有2种:1) Object getBean(String name);根据容器中Bean的id或name来获取指定的Bean,获取之后需要进行强制类型转换。2) T getBean(Class requiredType);根据类的类型来获取Bean的实例。由于此方法为泛型方法,因此在获取Bean之后不需要进行强制类型转换。1.3 spring入门程序步骤:第一步:导入jar包,用spring最基本的功能时,只需要最基本的核心类即可第二步:创建类,在类里面创建方法/*在src目录下,创建一个com.itheima.ioc包,并在包中创建接口UserDao,然后在接口中定义一个say()方法。*/package com.itheima.ioc;public interface UserDao public void say();/*创建UserDao接口的实现类UserDaoImpl,该类需要实现接口中的say()方法,并在方法中编写一条输出语句。*/package com.itheima.ioc;public class UserDaoImpl implements UserDao public void say() System.out.println(userDao say hello World !); 第三步:创建spring配置文件,配置创建类 配置文件中的约束信息不需要自己动手去编写,在spring的帮助文档中可以找到:打开spring解压文件夹中的docs目录,在spring-framework-reference文件夹下打开html文件夹,找到index.html文件打开,在Overview of Spring Framework下的7.2.1小节Configuration metadata中即可找到。在复制后的xsd信息中加入spring的版本号信息即可,如:/schema/beans/spring-beans-4.3.xsd第四步:测试类的创建创建测试类TestIoC,并在类中编写main()方法。在main()方法中,需要初始化Spring容器,并加载配置文件,然后通过Spring容器获取userDao实例(即Java对象),最后调用实例中的say()方法。 package com.itheima.ioc; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestIoC public static void main(String args) ApplicationContext applicationContext = new ClassPathXmlApplicationContext(applicationContext.xml); UserDao userDao = (UserDao) applicationContext.getBean(userDao); userDao.say(); 1.4 依赖注入1.4.1 依赖注入的含义全称:Dependency Injection,它与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念。IoC:在使用Spring框架之后,对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这样,控制权由应用代码转移到了Spring容器,控制权发生了反转,这就是控制反转。DI:从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是Spring的依赖注入。1.4.2 使用setter方法实现依赖注入步骤:1)在com.itheima.ioc包中,创建接口UserService,在接口中编写一个say()方法。 package com.itheima.ioc; public interface UserService public void say(); 2)在com.itheima.ioc包中,创建UserService接口的实现类UserServiceImpl,在类中声明userDao属性,并添加属性的setter方法。 package com.itheima.ioc; public class UserServiceImpl implements UserService private UserDao userDao; public void setUserDao(UserDao userDao) this.userDao = userDao; public void say() this.userDao.say(); System.out.println(userService say hello World !);3)在配置文件applicationContext.xml中,创建一个id为userService的Bean,该Bean用于实例化UserServiceImpl类的信息,并将userDao的实例注入到userService中。 4)在com.itheima.ioc包中,创建测试类TestDI,来对程序进行测试。package com.itheima.ioc;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestDI public static void main(String
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年如何通过乡村手工艺合作社信息员招聘考试实战经验
- 2025年工程师职场必-备铁路工程一级建造师专业面试题与解析
- 软件测试工程师岗前培训心得体会
- 四年级上册语文阅读兴趣激发计划
- 2025年乡镇农技站招聘考试模拟题及答案解析
- 2025年医学专业招聘考试试题
- 集中隔离点志愿者管理职责流程
- 2025年县域寄递事业部客户分析与市场拓展模拟题集及答案
- 退休生活社群创新创业项目商业计划书
- 游戏本地化服务创新创业项目商业计划书
- 村级卫生室院感管理要求
- 员工自愿不交社保协议书模板(5篇)
- OECD税收协定范本中英对照文本
- 浙教版九上科学前三章难题易错题精选题(含答案)
- Unit 1 Reading and Thinking 教学设计-高中英语人教版(2019)必修第三册
- 苏教版四年级上册科学全册课件
- 仪表安装规范以及验收
- 《观潮》课件.ppt2
- 人教版(PEP)小学英语_3~6年级_单词表(带有音标)
- 地下连续墙施工质量控制要点(北京17号线)
- 织造工艺设计指导书
评论
0/150
提交评论