一、spring介绍

1.三层架构中spring位置

2.spring一站式框架

正是因为spring框架性质是属于容器性质的.

容器中装什么对象就有什么功能.所以可以一站式.

不仅不排斥其他框架,还能帮其他框架管理对象.

aop支持、ioc思想、spring jdbc、aop 事务、junit 测试支持

二、spring搭建

1.导包

日志包:com.springsource.org.apache.commons.logging-1.1.1.jar

可选:com.springsource.org.apache.log4j-1.2.15.jar(老版本要导入的,导入可以保证一定能运行)

2.创建一个对象

public class User {private String name;private Integer age; public String getName() {return name;

}public void setName(String name) {this.name = name;

}public Integer getAge() {return age;

}public void setAge(Integer age) {this.age = age;

}

}

3.书写配置注册对象到容器

位置任意(建议放到src下)

配置文件名任意(建议applicationContext.xml)

导入约束:

然后编辑applicationContext.xml

进入编辑后点击add,导入xsi

添加完xsi后,再次点击add,指定一个新的命名空间

然后选择刚刚导入的xsd

点击OK,回到刚刚的页面,设置命名空间的名字(可以直接复制location Hint的前半段),prefix空着即可

点击OK,显示为下面的界面,就说明导入成功了。

书写applicationContext.xml:

4.代码测试

@Testpublic void fun1(){ //1 创建容器对象ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");//2 向容器"要"user对象User u = (User) ac.getBean("user");//3 打印user对象 System.out.println(u);

}

三、spring概念

1.思想

1.1 ioc

1.2 di

2.applicationContext&BeanFactory

2.1 BeanFactory接口

spring原始接口.针对原始接口的实现类功能较为单一;

BeanFactory接口实现类的容器.特点是每次在获得对象时才会创建对象。

2.2 ApplicationContext

每次容器启动时就会创建容器中配置的所有对象.并提供更多功能。

从类路径下加载配置文件:ClassPathXmlApplicationContext

2.3 结论

结论:web开发中,使用applicationContext. 在资源匮乏的环境可以使用BeanFactory.

四、spring配置详解

1.Bean元素

2.Bean元素进阶

2.1 scope属性

singleton(默认值):单例对象.被标识为单例的对象在spring容器中只会存在一个实例

prototype:多例原型.被标识为多例的对象,每次再获得才会创建.每次创建都是新的对象.整合struts2时,ActionBean必须配置为多例的.

request:web环境下.对象与request生命周期一致.

session:web环境下,对象与session生命周期一致.

2.2 生命周期属性

init-method:配置一个方法作为生命周期初始化方法.spring会在对象创建之后立即调用.

destory-method:配置一个方法作为生命周期的销毁方法.spring容器在关闭并销毁所有容器中的对象之前调用.

3.spring创建对象的方式

class="cn.itcast.b_create.UserFactory"

factory-method="createUser" >

factory-bean="userFactory"factory-method="createUser2" >

class="cn.itcast.b_create.UserFactory" >

4.spring的分模块配置

五、spring属性注入

1.注入方式

1.1 set方法注入(重中之重)

1.2 构造函数注入(重点)

1.3 p名称空间注入

1.4 spel注入

2.复杂类型注入

2.1 数组

tomjerry

2.2 List

jackrose

2.3 Map

2.4 Properties

com.jdbc.mysql.Driverroot1234

六、练习:将spring容器应用到struts-crm项目

管理Service对象以及Dao对象

1.导包(4+2),再加1

再加1指的是:spring-web-4.2.4.RELEASE.jar(因为要用到web的监听)

2.将Service对象以及Dao对象配置到spring容器

3.在Action中获得容器中的Service对象

3.1 web.xml中配置容器随项目启动

org.springframework.web.context.ContextLoaderListener

contextConfigLocationclasspath:applicationContext.xml

3.2 在Action中获得容器

//获得spring容器=>从Application域获得即可 //1 获得servletContext对象ServletContext sc = ServletActionContext.getServletContext();//2.从Sc中获得ac容器WebApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(sc);//3.从容器中获得CustomerServiceUserService us = (UserService) ac.getBean("userService");

4.管理容器在项目中的生命周期

下面错误的示范.导致每次请求都创建新的容器

//创建容器对象ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");//获得cs(customerService对象)CustomerService cs = (CustomerService) ac.getBean("customerService");

java项目功能详情介绍,JAVAEE—spring的详细介绍相关推荐

  1. java项目-第99期基于spring+springmvc+hibernate的在线问卷答题系统-计算机毕业设计

    java项目-第99期基于spring+springmvc+hibernate的在线问卷答题系统[毕业设计] [源码请到下载专栏下载] 1.项目简述 今天分享的项目是<在线问卷答题系统>, ...

  2. 1、【java数据安全】数据安全之加密解密(base64、MD、SHA、DES、AES、IDEA、PBE、DH、RSA、EIGamal)、数字签名(DSA、ECDSA)和数字证书介绍、应用示例详细介绍

    java数据安全 系列文章 1.[java数据安全]数据安全之加密解密(base64.MD.SHA.DES.AES.IDEA.PBE.DH.RSA.EIGamal).数字签名(DSA.ECDSA)和数 ...

  3. 鸿蒙系统如何开启快捷方式,鸿蒙系统功能介绍-华为鸿蒙系统功能详细介绍 - 系统家园...

    华为鸿蒙系统是华为自研发的一款操作系统,目前已经可以应用于部分机型上了.而且经过了前些日子的公测,相信会有更多机型将马上可以用到鸿蒙系统,因此今天小编就来给大家介绍一下这款系统有哪些功能吧. 华为鸿蒙 ...

  4. Java项目:基于jsp+mysql+Spring+mybatis的SSM业务代办帮跑腿管理系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 本项目分为管理员.用户与跑腿小哥三种角色: 跑腿小哥角色包含以下功能: 跑腿小哥登录, ...

  5. Java项目:基于jsp+mysql+Spring+mybatis的SSM在线中药药方管理系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 本项目分为药房人员.管理员与医生三种角色: 药房人员角色包含以下功能: 药房人员登录, ...

  6. JAVA导出Excel通用工具类——第一篇:详细介绍POI 导出excel的多种复杂情况,包括动态设置筛选、动态合并横向(纵向)单元格等多种复杂情况——保姆级别,真的不能再详细了,代码拿来即用)

    JAVA导出Excel通用工具--第一篇:详细介绍POI 导出excel的多种复杂情况,包括动态设置筛选.动态合并横向(纵向)单元格等多种复杂情况--保姆级别,真的不能再详细了,封装通用工具类,代码拿 ...

  7. java lambda 局部变量_java Lambda表达式访问局部变量详细介绍

    此前给大家带来了java Lambda表达式访问成员变量详细介绍,下面就要继续给大家介绍java Lambda表达式访问局部变量的内容,一起通过简单的文章来进行了解吧. 对于成员变量的访问Lambda ...

  8. 北斗授时服务器项目,北斗授时服务器的应用及详细介绍

    北斗授时服务器的应用及详细介绍 将局域网上各种需要同步时钟的设备的时间信息基于北斗时间偏差限定在足够小的范围内,这种时钟系统便就叫做北斗授时系统.任何时间应用系统都应该具有维持时间增长和缩减,客户端内 ...

  9. windows7计算机窗口介绍,windows7使用技巧详细介绍【图解】

    电脑在我们的生活中已经成为了生活中常见的一个设备了,现在人们在工作或者是学习的时候都会使用到电脑.所以说电脑也成为了很重要的一个部分.我们使用电脑的时候,电脑中间都是必须要安装系统的.Windows7 ...

最新文章

  1. 在线可玩 | 给AI一张高清照片,分分钟还你细节满满的3D人体模型,GitHub标星3.6k...
  2. OpenGL学习(4)——纹理
  3. python 查看数据结构类型_python标准数据结构类型
  4. 谷歌guava_Google Guava:您永远不会知道的5件事
  5. .NET Core 3 WPF MVVM框架 Prism系列之事件聚合器
  6. 分享:流言终结者——C语言内存管理
  7. 深度学习之江湖~那些大神们
  8. 自学-Linux-老男孩Linux77期-day6
  9. html设置抽奖概率,js设置概率随机数(可用于抽奖,砍价的逻辑应用)
  10. win7安装php失败,win7打印机驱动安装失败怎么办
  11. 史上最全的疫情历史数据
  12. Azure IoT Edge入门(2)部署一台Edge Device
  13. 一、FreeRTOS简介
  14. 米勒-拉宾(MillerRabbin)素性测试算法
  15. 拉拉米抢单发单系统源码+二开ui带视频介绍+ 放量功能
  16. C语言学习笔记-有符号数和无符号数相加的问题
  17. mysql 二进制 nodejs_Linux 下安装NodeJS (二进制包)
  18. 神经网络尺寸和表达能力
  19. 《投资要义》书中的精髓:成功投资的要义在于低估值买入、分散化投资以及不深度研究个股。
  20. 【历史上的今天】2 月 2 日:公钥密码学发明者诞生;苹果的衰落期;测谎仪首次被使用

热门文章

  1. OceanBase时序数据库CeresDB正式商用 为用户提供安全可靠的数据存储管理服务
  2. Elasticsearch生态技术峰会 | 阿里云Elasticsearch云原生内核
  3. Serverless的初心、现状和未来
  4. 心动网络:PolarDB助力心动网络打造爆款手游
  5. MongoDB sharding 集合不分片性能更高?
  6. Gartner 最新预测:全球云收入将超非云收入,云原生、低代码、SASE 继续普及
  7. 浪潮商用机器亮相金博会 夯实新常态下金融科技发展基石
  8. 炸裂!谷歌这波操作,预警了什么?
  9. 关于区块链,程序员需要了解什么
  10. android如何创建spinner组件,Andriod开发之下拉列表控件(Spinner)的用法