搜尋
首頁Javajava教程JAVAEE—spring的詳細介紹
JAVAEE—spring的詳細介紹Jun 21, 2017 am 09:53 AM
javaee介紹搭建概念

一、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

##  然後編輯applicationContext.xml

  

 

 後點選add,導入xsi

  

  加入xsi後,再點選add,指定一個新的命名空間

  

#  接著選擇剛剛導入的xsd

  

  點擊OK,回到剛剛的頁面,設定命名空間的名字(可以直接複製location Hint的前半段),prefix空著即可

  

  點選OK,顯示為下面的介面,就表示導入成功了。

  

  書寫applicationContext.xml:

<?xml  version="1.0" encoding="UTF-8"?><beans><!-- 将User对象交给spring容器管理 --><bean></bean></beans>

##  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);
    }

#  4.程式碼測試

#
    <!-- 将User对象交给spring容器管理 --><!-- Bean元素:使用该元素描述需要spring容器管理的对象
            class属性:被管理对象的完整类名.
            name属性:给被管理的对象起个名字.获得对象时根据该名称获得对象.  
                    可以重复.可以使用特殊字符.
            id属性: 与name属性一模一样. 
                    名称不可重复.不能使用特殊字符.
            结论: 尽量使用name属性.      --><bean></bean>

#  4.程式碼測試

#

    <bean></bean>
 

三、spring概念

  1.思想

   1.1 ioc

#  

  di

  

 

  2.applicationContext&BeanFactory

   2.1 BeanFactory介面較為單一;

   BeanFactory介面實作類別的容器。特點是每次在取得物件時才會建立物件。

   2.2 ApplicationContext

   每次容器啟動時就會建立容器中配置的所有物件.並提供更多功能。

  

從類別路徑下載入設定檔:ClassPathXmlApplicationContext

   2.3 結論
####   結論:web開發中,使用applicationContext. 在資源匱乏的環境可以使用BeanFactory.###### ######四、spring配置詳解#######  1.Bean元素######
    <!-- 创建方式1:空参构造创建(重点)  --><bean></bean> <!-- 创建方式2:静态工厂创建 (了解)
          调用UserFactory的createUser方法创建名为user2的对象.放入容器     --><bean></bean><!-- 创建方式3:实例工厂创建 (了解)
         调用UserFactory对象的createUser2方法创建名为user3的对象.放入容器     --><bean></bean><bean></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容器在关闭并销毁所有容器中的对象之前调用.

    <bean></bean>

 

  3.spring创建对象的方式

    <!-- 创建方式1:空参构造创建(重点)  --><bean></bean> <!-- 创建方式2:静态工厂创建 (了解)
          调用UserFactory的createUser方法创建名为user2的对象.放入容器     --><bean></bean><!-- 创建方式3:实例工厂创建 (了解)
         调用UserFactory对象的createUser2方法创建名为user3的对象.放入容器     --><bean></bean><bean></bean>

 

  4.spring的分模块配置

    <!-- 导入其他spring配置文件 --><import></import>

 

五、spring属性注入

  1.注入方式

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

    <!-- set方式注入: --><bean><!--值类型注入: 为User对象中名为name的属性注入tom作为值 --><property></property><property></property><!-- 引用类型注入: 为car属性注入下方配置的car对象 --><property></property></bean><!-- 将car对象配置到容器中 --><bean><property></property><property></property></bean>

   1.2 构造函数注入(重点)

    <!-- 构造函数注入 --><bean><!-- name属性: 构造函数的参数名 --><!-- index属性: 构造函数的参数索引 --><!-- type属性: 构造函数的参数类型--><constructor-arg></constructor-arg><constructor-arg></constructor-arg></bean>

   1.3 p名称空间注入

<!-- p名称空间注入, 走set方法
    1.导入P名称空间  xmlns:p="http://www.springframework.org/schema/p"
    2.使用p:属性完成注入
        |-值类型: p:属性名="值"
        |-对象类型: p:属性名-ref="bean名称" --><bean></bean>

   1.4 spel注入

<!-- 
    spel注入: spring Expression Language sping表达式语言 --><bean><property></property><property></property><property></property></bean>

 

  2.复杂类型注入

   2.1 数组

    <!-- 如果数组中只准备注入一个值(对象),直接使用value|ref即可 
    <property name="arr" value="tom" ></property>--><!-- array注入,多个元素注入 --><property><array><value>tom</value><value>jerry</value><ref></ref></array></property>

   2.2 List

    <!-- 如果List中只准备注入一个值(对象),直接使用value|ref即可 
    <property name="list" value="jack" ></property>--><property><list><value>jack</value><value>rose</value><ref></ref></list></property>

   2.3 Map

    <!-- map类型注入 --><property><map><entry></entry><entry></entry><entry></entry></map> </property>

   2.4 Properties

    <!-- prperties 类型注入 --><property><props><prop>com.jdbc.mysql.Driver</prop><prop>root</prop><prop>1234</prop></props></property>

 

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

  管理Service对象以及Dao对象

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

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

 

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

<?xml  version="1.0" encoding="UTF-8"?><beans><!-- 配置Dao --><bean></bean><bean></bean><bean></bean><!-- 配置Service --><bean><property></property></bean><bean><property></property><property></property></bean><bean><property></property></bean></beans>

 

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

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

  <!-- 可以让spring容器随项目的启动而创建,随项目的关闭而销毁 -->
  <listener>  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- 指定加载spring配置文件的位置 -->
  <context-param>  <param-name>contextConfigLocation</param-name>  <param-value>classpath:applicationContext.xml</param-value>
  </context-param>

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

 

以上是JAVAEE—spring的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
元宇宙概念是什么意思 什么是元宇宙概念元宇宙概念是什么意思 什么是元宇宙概念Feb 22, 2024 pm 03:55 PM

元宇宙是利用技术与现实世界映射与交互的虚幻世界。解析1元宇宙【Metaverse】是充分利用技术方式进行链接与创造的,与现实世界映射与交互的虚幻世界,拥有最新型社会发展体制的数据生活空间。2元宇宙本质上是对现实世界的虚拟技术、数字化过程,需要对內容生产、经济系统、客户体验和实体世界內容等进行大量改造。3但元宇宙的发展趋势是循序渐进的,是在共享的基础设施、标准规定及协议的支撑下,由许多工具、平台不断结合、进化而最终成型。补充:元宇宙是什么构成的1元宇宙由Meta和Verse构成,Meta是超越,V

edge快捷键的介绍edge快捷键的介绍Jul 12, 2023 pm 05:57 PM

在如今快捷的生活,为了提高工作效率,快捷键是必不可少的工作需求。快捷键是指按键或按键组合,可提供另一种方式来执行通常使用鼠标执行的操作。那么edge快捷键有哪些呢?edge快捷键的功能又有哪些呢?下面小编整理了一份edge快捷键的介绍,感兴趣的朋友们快来看看吧!Ctrl+D:将当前页面添加到收藏夹或阅读列表Ctrl+E:在地址栏中执行搜索查询Ctrl+F:在页面上查找Ctrl+H:打开历史记录面板Ctrl+G:打开阅读列表面板Ctrl+I:打开收藏夹列表面板(测试好像不起作用)Ctrl+J:打开

深入了解Gunicorn的基本原理和功能深入了解Gunicorn的基本原理和功能Jan 03, 2024 am 08:41 AM

Gunicorn的基本概念和作用Gunicorn是一个用于在PythonWeb应用程序中运行WSGI服务器的工具。WSGI(Web服务器网关接口)是Python语言定义的一种规范,用于定义Web服务器与Web应用程序之间的通信接口。Gunicorn通过实现WSGI规范,使得PythonWeb应用程序可以被部署和运行在生产环境中。Gunicorn的作用是作

使用类的概念编写Java程序来计算矩形的面积和周长使用类的概念编写Java程序来计算矩形的面积和周长Sep 03, 2023 am 11:37 AM

Java语言是当今世界上最常用的面向对象编程语言之一。类的概念是面向对象语言中最重要的特性之一。一个类就像一个对象的蓝图。例如,当我们想要建造一座房子时,我们首先创建一份房子的蓝图,换句话说,我们创建一个显示我们将如何建造房子的计划。根据这个计划,我们可以建造许多房子。同样地,使用类,我们可以创建许多对象。类是创建许多对象的蓝图,其中对象是真实世界的实体,如汽车、自行车、笔等。一个类具有所有对象的特征,而对象具有这些特征的值。在本文中,我们将使用类的概念编写一个Java程序,以找到矩形的周长和面

掌握Spring MVC的关键概念:了解这些重要特性掌握Spring MVC的关键概念:了解这些重要特性Dec 29, 2023 am 09:14 AM

了解SpringMVC的关键特性:掌握这些重要的概念,需要具体代码示例SpringMVC是一种基于Java的Web应用开发框架,它通过模型-视图-控制器(MVC)的架构模式来帮助开发人员构建灵活可扩展的Web应用程序。了解和掌握SpringMVC的关键特性将使我们能够更加有效地开发和管理我们的Web应用程序。本文将介绍一些SpringMVC的重要概念

Oracle RAC 简介及核心概念Oracle RAC 简介及核心概念Mar 07, 2024 am 11:39 AM

OracleRAC(RealApplicationClusters)简介及核心概念随着企业数据量的不断增长和对高可用性、高性能的需求日益突出,数据库集群技术变得越来越重要。OracleRAC(RealApplicationClusters)就是为了解决这一问题而设计的。OracleRAC是Oracle公司推出的一种高可用性、高性能的集群数据库解

使用Docker Container部署JavaEE应用程序使用Docker Container部署JavaEE应用程序Jun 05, 2024 pm 08:29 PM

使用Docker容器部署JavaEE应用程序:创建Dockerfile定义镜像、构建镜像、运行容器并映射端口,然后在浏览器中访问应用程序。示例JavaEE应用程序:RESTAPI与数据库交互,通过Docker部署后可在localhost访问。

java和javaee区别java和javaee区别Nov 02, 2023 am 10:50 AM

java和javaee在定义和用途、组件和功能、平台和环境、应用范围和开发模式等。详细介绍:1、定义和用途,Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出,Java具有跨平台、可移植性、安全性和简单性等特点,广泛用于开发各种应用程序,而Java EE是Java平台的企业级扩展,旨在开发和部署大规模、可扩展、可靠的企业级应用程序等等。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器