热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

spring框架的简介和搭建spring的运行环境

六大框架struts1,struts2,hibernate,spring,springMVC,mybatisMVC框架:struts1,struts2,springMVC持久层框

六大框架

struts1,struts2,hibernate,spring,springMVC,mybatis
MVC框架:struts1,struts2,springMVC
持久层框架:hibernate,mybatis
整合型框架/设计型框架:spring

spring的概述

spring是一个开源的框架,为了简化企业级的开发
spring是一个IOC(DI)和AOP容器框架,其中最重要的是IOC
spring的优点:

非侵入式就是你加入了spring技术用来管理对象,而在开发中你可以用spring的API来创建对象,但是你也可以用用来的技术的方式来创建对象
依赖注入就是DI(Dependency Injection,是IOC(反转控制)最经典的实现
面向切面编程Aspect Oriented Programming(AOP),AOP是补充OOP(面向对象编程)的缺陷而产生的
它是个容器就好比如tomcat也是一个容器,能管理servlet的生命周期,spring也是容器,能管理应用对象的生命周期.之前我们需要对象的时候都是要开辟空间来new出来的,都是在一个项目中,不是每一个对象都是从头用到尾的.spring就能帮我们管理对象.
组件化spring中的组件就是spring管理的对象,spring实现使用简单的组件配置组合成一个复杂的应用,使用的是XML和Java注释组合这些对象,不是使用spring,我们是类产生对象,对象调用方法组合成一个项目,对象和方法是关联起来的,对象和对象的耦合度很高,但是spring的每一个组件时独立的,相互的耦合度很低,但是在spring的管理下可以组合成一个项目,所以spring能降低对象的耦合度
一站式spring里面的IOC和AOP的基础之上可以整合各种企业应用的开源框架和优秀的第三方类库,而且spring自身也有表述层的springMVC和持久层的springJDBC

spring模块


在这里插入图片描述
先从最下面开起,spring最重要的是IOC,其实最下面,就是最底层的Beans,corecontext,spEl就是由IOC管理的
然后就到AOP切面编程,Aspects是切面
再到上面的JDBC,就是连接数据库的东西,
ORM是关系映射,就是能自动将数据库的数据转变成类对象,然后我们操作数据库就好像直接操作对象一样简单

搭建spring运行时环境

首先我们肯定是先导入jar包
基础的jar包我们需要五个,其中四个在Spring自身目录下

spring的目录下:spring-framework-4.0.0.RELEASE\libs
spring-beans-4.0.0.RELEASE.jar //就是主要的IOC功能
spring-context-4.0.0.RELE2ASE.jar //上下文
spring-core-4.0.0.RELEASE.jar //核心jar包
spring-expression-4.0.0.RELEASE.jar //表达式
还有一个是包是commons-logging-1.1.1.jar //日志,有些框架就是自动调用日志功能

因为spring可以帮你管理对象,所以在工程里面先创建class类先
注意,在class类里面的属性数据类型最好都是使用引用数据类型, 就比如要使用int的数据类型,改用成Integer数据类型,原因: 比如你在数据库中age是没有赋值的,那么在数据库中应该就是null, 那么你查出来也是null,当你想给int的数据类型赋值的时候,那么是赋值不了的,但是引用数据类型就可以 还有就是对象的属性我们可以不给它赋值,如果属性是基本数据类型,默认是0,如果是引用数据类型,那么默认是null,如果这个属性我们本来想给它赋值0的,那么基本数据类型的默认0和我们要设置0就有冲突,我们不知道是我们设置为0还是默认的0,但是引用数据类型就没有这个冲突

class类创建好后,就想让spring来管理你写得类,想这样就得在spring的配置文件里面配置好,所以现在就创建spring的配置文件,就是XML文件
一般是的是这样的

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

如果你是使用eclipse的话,需要手动创建这样的XML文件,很麻烦,但是你可以为eclipse安装一个STS的插件,这样就可以直接创建spring的配置文件.
你可以直接在spring的官网上面下载,应该下载一个spring roo的软件包就行了,也可以点这里的链接spring roo https://projects.spring.io/spring-roo/
又或者下载eclipse的TST项目的插件,找你对应的eclipse的版本,比如这里的最新版
http://download.springsource.com/release/TOOLS/update/3.9.5.RELEASE/e4.8/springsource-tool-suite-3.9.5.RELEASE-e4.8.0-updatesite.zip
对应的版本改一下里面的黑色数字就行
下载后直接在eclipse里面安装就行,因为STS插件比较大,一般安装里面以spring.IDE结尾的就够你平时用了,应该有四个是以spring.IDE结尾了
如果你是使用Spring Tool Suite 4的在新建的菜单里面没有 Spring Bean Configration File也安装上面的补丁插件就行
上面的都搞定后就开始新建spring的配置文件,新建一个source folder,命名为conf,在里面创建
一个spring bean configration file,命名为applicationContxt的XML文件,里面的内容就是上面的了
很方便,然后我们就得在里面写我们要配置的class
然后我们要在applicationContxt里面给spring管理我们建的类,就是在里面创建bean的标签,一个bean代表的是一个类,里面还可以给bean设置里面对象的属性,就是利用子标签来设置的,例如:

<?xml version&#61;"1.0" encoding&#61;"UTF-8"?>
<beans xmlns&#61;"http://www.springframework.org/schema/beans"xmlns:xsi&#61;"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&#61;"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id&#61;"Person" class&#61;"jane.Person"><property name&#61;"id" value&#61;"1"></property><property name&#61;"name" value&#61;"张三"></property></bean></beans>

package jane;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test
{public static void main(String[] args){/** 初始化容器,ApplicationContext是一个接口,我们需要用它的实现类来创建容器* ClassPathXmlApplicationContext里面的参数是配置文件的路径,所以conf里面的* 配置文件名是可以改的,但是在以后的ssm框架里面是自动初始化容器,会自动找* applicationContext.xml文件,所以建议还是写成applicationContext.xml* 在配置文件里面有一个唯一标识的id,这里使用id来得到bean*/ApplicationContext ac&#61;new ClassPathXmlApplicationContext("applicationContext.xml");Person bean &#61; (Person)ac.getBean("Person");System.out.println(bean);}
}


推荐阅读
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
author-avatar
woaimm0705242
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有