java项目功能详情介绍,JAVAEE—spring的详细介绍

一、spring介绍

1.三层架构中spring位置

5d58c8baeee6c9ddceea26b8b66164a0.png

2.spring一站式框架

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

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

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

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

二、spring搭建

1.导包

6baf9da678a510bcbea1f8e76ef7cfa9.png

9eb7a88189878631ca291abe85baafb6.png

日志包: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)

导入约束:

b6de78b30159d467bba51d713c404b26.png

然后编辑applicationContext.xml

fe4e6cd77d2c7c27da06a15e6ebc2970.png

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

d6b2dca78d9e5936dfd3e65e7afe4b6a.png

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

6991514ee482b4f70e314981c37b1da7.png

然后选择刚刚导入的xsd

98f24b232b0bc6090e4090f03977fd95.png

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

c9835a2f37f8751b14dd28227fb655d2.png

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

8d1dfcc03d665508207fffffa9411a84.png

书写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

3492d375747c66d2034c94196001efa6.png

1.2 di

21776303c43ca4051054df5c79dbf1c6.png

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");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

乘势而起,走进2019年风口“边缘计算”

戳蓝字“CSDN云计算”关注我们哦!作者| pasca原创 | 蛋蛋团(ID:dandan_tuan)5G火了,也带火了边缘计算。2019年3月,一篇《5G风口扩散,超清视频边缘计算概念崛起》的文章意外走红,直接…

详解SLB、EIP、NAT网关之间区别, 合理选择云上公网入口

摘要: 概述 阿里云的公网入口产品共有三个,SLB、EIP、NAT网关,这几个产品都可以作为云上资源的公网入口,他们之间有何区别,又分别应该在什么场景下使用呢? 点此查看原文:http://click.aliyun.co…

Hadoop常见问题 | Hadoop能干什么?

戳蓝字“CSDN云计算”关注我们哦!我们很荣幸能够见证Hadoop十几年间经历了从无到有,再到称王。感动于技术的日新月异时,希望通过本篇有问有答,带大家解决Hadoop的常见问题。1Q: Hadoop 的发展历史A:2Q&…

matlab 导入元胞,MATLAB导入xls文件以及cell的使用方法

使用matlab读入.xls的文件时候可以用[T,TXT,RAW]xlsread("filename.xls")导入也可以使用import data 的办法手动导入文件。但是我比较倾向于自动化程度比较高的前者,毕竟有时候导入的文件数量是几百个手动导入不科学。xlsread返回的参数有三个&#xff0c…

uDevice Center - IoT弹性在线多设备开发平台

摘要: IoT开发的一大痛点在于:硬件获取与setup路径太长;开发工具难以支持多设备联合开发。我们用uDevice Center把开发板/设备都搬到了线上,让用户可以不用买硬件接线,在线就能做IoT开发调试了。同时,uDevi…

快报:Python 被爆重大“黑料”!程序员:劲爆!

坐拥各大编程排行榜的Python,真的无敌了吗?在我一个朋友看来,他坚信 Python 可以做任何事情。但其实我是不服的,我相信很多人都有这种感觉。但是我最近当看 GitHub 年度项目数量时,我哭了,因为 Python 应用…

SpringBoot集成flowable-modeler(6.4.1) 实现免登

因公司需求需要将flowable的流程设计器集成到项目中,下面将最近的研究成果记录一下。 文章目录一、下载flowable-modeler源码二、添加相关maven包三、调用idm服务重新接口四、配置类五、启动类跳过登陆拦截六、配置文件一、下载flowable-modeler源码 把flowable-ui…

时代在召唤5G

戳蓝字“CSDN云计算”关注我们哦!作者| 白告天原创 |边缘计算社区错过房价飞涨的年代,你还要错过5G这班车吗?一 5G是什么?5G,就是第五代移动通信技术。和大哥大变成智能手机,绿皮火车变成和谐号都是一种大幅…

jboss连接池,断开后自动重连功能

最近客户现场的测试环境连的数据库极不稳定,经常会出现需要重新启动数据库的情况, 但是一旦重启数据库 则会出现 提示 ,执行sql错误,原因就是datasource 没有获取新的连接! 那么解决办法就是怎样让jboss每次提供连接的时候都给我们…

API信息全掌控,方便你的日志管理——阿里云推出API网关打通日志服务

摘要: 近日,阿里云API网关对接了日志服务,可以输出用户在API网关产生的API调用日志,目前支持将 API 接入 API 网关的用户查看日志明细、概况、报表分析、在线查询等。 访问日志(Acccess Log)是由应用服务生…

GitHub 被爆开始实名制,以便于执行美国贸易制裁;特斯拉推出超大储能产品Megapack;高通宣布与腾讯游戏达成战略合作……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 尼展示圆柱型透明式显示屏&a…

几何级数 函数 matlab,matlab 实验05数据的统计分析

数据的统计分析在日常生活中我们会在很多事件中收集到一些数据(比如:考试分数、窗口排队人数、月用电量、灯泡寿命、测量误差、产品质量、月降雨量等数据),这些数据的产生一般都是随机的.这些随机数据乍看起来并没有什么规律,但通…

IDEA解决sun.misc.BASE64Encoder找不到jar包的解决方法

sun.misc.BASE64Encoder 不建议使用java.sun自带包中的内容 import sun.misc.BASE64Encoder; import sun.misc.BASE64Decoder;在项目中,设计到64位编码的。有时开发会用到JDK中自带的BASE64工具。但sun公司是建议不这样做的。尤其是更新了JDK版本,项目甚…

MaxCompute印尼开服,成为阿里云第十二个大数据服务节点

摘要: 人口超2.5亿的印度尼西亚,政府、通讯公司和银行等机构拥有繁杂的数据沉淀,他们正在加快应用大数据开发框架。MaxCompute势必加速这一进程,唤醒沉淀数据,最大化挖掘数据价值。 点此查看原文:http://cl…

大数据年代,我们的思想已被算法剥夺

戳蓝字“CSDN云计算”关注我们哦!在这个信息爆炸的年代,我们能够获取信息的途径正越来越多。各类信息通过各种文字APP,图片APP,视频APP乃至微信朋友圈传达到你面前。任何一个新闻都可以在发酵后的1天内传遍整个世界。看起来人们正…

SpringBoot整合Editor.md实现Markdown编辑器

Editor.md 是一款开源的、可嵌入的 Markdown 在线编辑器(组件),基于 CodeMirror、jQuery 和 Marked 构建。 文章目录一、技术选型及分支部署二、集成手册2.1. 下载项目2.2. 创建数据库2.3. 初始化数据库脚本2.4. 修改数据库用户名/密码 默认r…

【新功能】MaxCompoute禁止Full Scan功能开放

摘要: 2018年1月10日,MaxCompute禁止Full Scan功能开放。对于新创建的project默认情况下执行sql时,针对该project里的分区表不允许全表扫描,必须有分区条件指定需要扫描的分区。 点此查看原文:http://click.aliyun.com…

SpringBoot集成Editor.md 流程详细

接上一篇:SpringBoot整合Editor.md实现Markdown编辑器 https://blog.csdn.net/weixin_40816738/article/details/103160267 Editor.md 是一款开源的、可嵌入的 Markdown 在线编辑器(组件),基于 CodeMirror、jQuery 和 Marked 构建。 文章目录…

学阿里中台,80%的人只学到了皮毛!揭秘阿里中台的12个架构思维和原则

戳蓝字“CSDN云计算”关注我们哦!来源 | 阿里技术官方公众号(ali_tech)作者|九摩/阿里技术专家许多企业都忙于学习阿里的中台系统,想通过中台系统,解决企业当前的痛点,如:架构耦合度高、模块复用…

MaxCompute预付费资源监控工具-CU管家使用教程

摘要: MaxCompute管家使用前提 1、用户购买了 MaxCompute 预付费CU资源,60CU以上的用户(备注:CU过小无法发挥计算资源及管家的优势)。 2、支持区域,MaxCompute 华北2北京、华东2上海、华南1深圳 3个Region的…