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

JAVA_WEBSpring框架学习第一章使用容器管理Bean对象及属性注入

1.1.1Spring的概述:1.2.1.1什么是Spring:Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架࿰

1.1.1 Spring 的概述:


1.2.1.1 什么是 Spring :

 

        Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作 Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是 为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使 用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、 可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。Spring 的核心是控制反转 (IoC)和面向切面(AOP)。简单来说,Spring 是一个分层的 JavaSE/EEfull-stack(一站式) 轻量级 开源框架。

 


EE 开发分成三层结构:

* WEB 层:Spring MVC.

* 业务层:Bean 管理:(IOC)

* 持久层:Spring 的 JDBC 模板.ORM 模板用于整合其他的持久层框架.

 

Expert One-to-One J2EE Design and Development  :J2EE 的设计和开发:(2002.EJB)

Expert One-to-One J2EE Development without EJB  :J2EE 不使用 EJB 的开发.

三层框架中Spring的位置




1.2.1.2 为什么学习 Spring:

方便解耦,简化开发

        Spring 就是一个大工厂,可以将所有对象创建和依赖关系维护,交给 Spring 管理 AOP 编程的支持

        Spring 提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能 声明式事务的支持

        只需要通过配置就可以完成对事务的管理,而无需手动编程 方便程序的测试

        Spring 对 Junit4 支持,可以通过注解方便的测试 Spring 程序 方便集成各种优秀框架

        Spring 不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、 MyBatis、Quartz 等)的直接支持降低 JavaEE API 的使用难度

        Spring 对 JavaEE 开发中非常难用的一些 API(JDBC、JavaMail、远程调用等),都提供了封装, 使这些 API 应用难度大大降低


Spring一站式框架

    ①:spring框架性质是容器性质的

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

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

    ④:aop支持

    ⑤:ioc思想

    ⑥:spring jdbc

    ⑦:aop事物

    ⑧:junit 测试支持



1.2.1.3 Spring 的版本:

Spring 3.X   和   Spring4.X



1.2.1.4 Spring的模块化划分



开发步骤(针对bean管理的案例,只导入以下的包):


一:引入Spring的开发包

com.springsource.org.apache.log4j-1.2.15.jar(可选)老版本的需要用到这个包


二:创建一个对象


三:书写配置注册对象到容器

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

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

导入约束:




选择EditName....选项  如下:



四:代码测试




1.2.1.5 Spring概念





Ioc思想:



di思想:


applicationContext  与   BeanFactory  介绍

        BeanFactory接口:

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

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

       ApplicationContext:

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

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

                        ③:从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext("d:/xxx/yyy/xxx")


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

 


1.2.1.6 Spring配置详解




一:Bean元素


二:Bean元素进阶

                    scope属性:

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

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

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

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


三:生命周期属性

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

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



四:Spring创建对象的方式

            ①:空参构造方式

        

            ②:静态工厂(了解)

        

       

            ③:示例工厂(了解)

        

        


五:spring的分模块配置

        



1.2.1.6 Spring属性注入

        注入方式:  set方法注入、构造函数注入、P名称空间注入、spel注入

                  ①:set方法注入

                    

                 ② :构造函数注入

                           

                   ③:P名称空间注入

                    

                    ④:spel注入


                    复杂类型注入

                        ①:数组

                

                

                           ②:List

                

                

                        ③:Map

                

                        ④:Properties

                



推荐阅读
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
author-avatar
我的双宝宝_486
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有