当前位置: 首页 > news >正文

Spring读书笔记-----部署我的第一个Spring项目

       一、Spring介绍  

          Spring是一个轻量级的Java EE容器,它也是一种从实际需求出发,着眼于轻便,灵活,易于开发,易测试和易部署的轻量级开发框架。Spring它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。

          Spring为企业应用的开发提供了一个轻量级的解决方案。该方案包括:基于依赖注入的核心控制,基于AOP的声明式的事务管理,与持久层技术的耦合,以及优秀的Web MVC框架等。它致力于为Java EE 应用各层的解决方案。

          使用Spring具有如下优点:

          1、低倾入式设计,代码的污染低。

          2、独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write OnceRun Anywhere的承诺。

          3、SpringDI容器降低了业务对象替换的复杂性,提高了组件之间的解耦。

          4、SpringAOP支持允许将一些通用任务如安全、事务、日志等进行集中式处理,提供了更好的复用。

          5、SpringORMDAO提供了与第三方持久层矿建的良好整合,并简化了底层的数据库访问。

          6、Spring的高度开发性,并不强制应用完全依赖于Spring,开发者可以自由选择Spring框架的部分或全部。

          概述图:

 

          二、部署第一个Spring框架

          1、将Spring项目开发需要的jar包全部倒入到web应用的WEB-INF/lib路径下。 

        

          2、编写主程序,该主程序用于初始化Spring容器,Spring容器是Spring应用的核心,该容器负责管理容器中的java组件。

[java] view plain copy print ?
  1.        //创建Spring的ApplicationContext  
  2.  ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");  
  3. //输出Spring容器  
  4. System.out.println(ctx);  


          ApplicationContext实例就是Spring容器,它包含了很多功能,Spring框架中的绝大部分功能都是通过它实现的。一旦获得了Spring容器,就可以通过该容器访问Spring容器中Bean

 

          3、编写Java Bean类,该类让Spring容器管理。

[java] view plain copy print ?
  1. public class PersonService {  
  2.     private String name;  
  3.   
  4.     public void setName(String name) {  
  5.         this.name = name;  
  6.     }  
  7.       
  8.     //测试Person类的info方法  
  9.     public void info(){  
  10.         System.out.println("此人名为:"+name);  
  11.     }  
  12. }  


          4、将编写的Java Bean类部署在Spring文件中。

[html] view plain copy print ?
  1. <!-- 将PersonService类部署成Spring容器中的Bean  -->  
  2. <bean id="personService" class="com.spring.service.PersonService">  
  3.     <property name="name" value="chenssy"/>  
  4. </bean>  


          5、测试

          在主程序中的main方法增加如下代码,即可测试。

[java] view plain copy print ?
  1. PersonService p = ctx.getBean("personService",PersonService.class);  
  2. p.info();  


运行测试程序得到如下结果:

 
------读李刚《轻量级Java EE企业应用实战》

转载于:https://www.cnblogs.com/a1280055207/p/3250814.html

相关文章:

  • 减少死锁的几个常用方法
  • ylbtech-cnblogs(博客园)-数据库设计-7,News(新闻)
  • 用whistle和proxifier抓包调试任意客户端的网络请求
  • 一个C#文件传输模块,支持断点续传
  • linux 软硬链接
  • 单用户登陆限制(单点登录??)
  • 操作系统---进程 vs 线程
  • WPF使用第三方的字体(TTF文件)
  • RabbitMQ基础教程之基于配置的消费者实现
  • 上传文件过大的问题FileUploadBase$SizeLimitExceededException
  • 数据库index
  • What Is Cocoa?
  • JAVA 学习IO流
  • lightoj 1013 dp
  • php中curl和soap方式请求服务超时问题
  • 【5+】跨webview多页面 触发事件(二)
  • ➹使用webpack配置多页面应用(MPA)
  • es6(二):字符串的扩展
  • JavaScript 一些 DOM 的知识点
  • Linux中的硬链接与软链接
  • Map集合、散列表、红黑树介绍
  • Material Design
  • PHP 的 SAPI 是个什么东西
  • Yeoman_Bower_Grunt
  • 不上全站https的网站你们就等着被恶心死吧
  • 初识 webpack
  • 规范化安全开发 KOA 手脚架
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 终端用户监控:真实用户监控还是模拟监控?
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #{}和${}的区别?
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (12)目标检测_SSD基于pytorch搭建代码
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (八)Flask之app.route装饰器函数的参数
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (算法二)滑动窗口
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .naturalWidth 和naturalHeight属性,
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .net 验证控件和javaScript的冲突问题
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • @Transactional 竟也能解决分布式事务?
  • [Android View] 可绘制形状 (Shape Xml)
  • [BZOJ1008][HNOI2008]越狱
  • [C语言]编译和链接