Spring框架入门教程

合集下载

最全最经典spring_mvc教程

最全最经典spring_mvc教程

spring mvc学习教程(一)-入门实例引言1.MVC:Model-View-Control框架性质的C层要完成的主要工作:封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。

2.简要概述springmvcSpring C 层框架的核心是DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即使用了一种被称为Front Controller 的模式(后面对此模式有简要说明)。

Spring 的C 层框架使用了后端控制器来、映射处理器和视图解析器来共同完成C 层框架的主要工作。

并且spring 的C 层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象。

一、入门实例1. 搭建环境在spring的官方API文档中,给出所有包的作用概述,现列举常用的包及相关作用:org.springframework.aop-3.0.5.RELEASE.jar:与Aop编程相关的包org.springframework.beans-3.0.5.RELEASE.jar:提供了简捷操作bean的接口org.springframework.context-3.0.5.RELEASE.jar:构建在beans包基础上,用来处理资源文件及国际化。

org.springframework.core-3.0.5.RELEASE.jar:spring核心包org.springframework.web-3.0.5.RELEASE.jar:web核心包,提供了web层接口org.springframework.web.servlet-3.0.5.RELEASE.jar:web 层的一个具体实包,DispatcherServlet也位于此包中。

后文全部在spring3.0 版本中进行,为了方便,建议在搭建环境中导入spring3.0 的所有jar 包(所有jar 包位于dist 目录下)。

SpringMVC框架搭建流程(完整详细版)

SpringMVC框架搭建流程(完整详细版)

SpringMVC框架搭建流程(完整详细版)SpringMVC框架搭建流程开发过程1)配置DispatcherServlet前端控制器2)开发处理具体业务逻辑的Handler(@Controller、 @RequestMapping)3) xml配置⽂件配置controller扫描,配置springmvc三⼤件4)将xml⽂件路径告诉springmvc(DispatcherServlet)详细流程:创建⽬录新建maven项⽬,注意选择webapp⾻架。

创建成功之后会发现没有src等⽬录,这些需要我们⼿动创建:在src下⾯新建main,main下⾯新建java⽬录,选择java⽬录,右键,在main下⾯继续新建resource⽬录,选择resource⽬录,右键,pom.xmlpom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion><groupId></groupId><artifactId>springmvc-demo</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><piler.source>11</piler.source><piler.target>11</piler.target></properties><dependencies><!--引⼊spring webmvc的依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.12.RELEASE</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port><path>/</path></configuration></plugin></plugins></build></project>注意Tomcat7插件是⽤来运⾏项⽬的,右侧运⾏:springmvc相关配置main⽂件夹下⾯新建webapp⽂件夹,webapp下⾯新建WEB-INF,下⾯新建web.xml<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><!--⽅式⼀:带后缀,⽐如*.action *.do *.aaa该种⽅式⽐较精确、⽅便,在以前和现在企业中都有很⼤的使⽤⽐例⽅式⼆:/ 不会拦截 .jsp,但是会拦截.html等静态资源(静态资源:除了servlet和jsp之外的js、css、png等)为什么配置为/ 会拦截静态资源因为tomcat容器中有⼀个web.xml(⽗),你的项⽬中也有⼀个web.xml(⼦),是⼀个继承关系⽗web.xml中有⼀个DefaultServlet, url-pattern 是⼀个 /此时我们⾃⼰的web.xml中也配置了⼀个 / ,覆写了⽗web.xml的配置为什么不拦截.jsp呢?因为⽗web.xml中有⼀个JspServlet,这个servlet拦截.jsp⽂件,⽽我们并没有覆写这个配置,所以springmvc此时不拦截jsp,jsp的处理交给了tomcat如何解决/拦截静态资源这件事?⽅式三:/* 拦截所有,包括.jsp--><!--拦截匹配规则的url请求,进⼊springmvc框架处理--><url-pattern>/</url-pattern></servlet-mapping></web-app>⾥⾯配置了springmvc相关的配置,引⼊了springmvc.xml:在resource⽬录下新建springmvc.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beanshttps:///schema/beans/spring-beans.xsd/schema/contexthttps:///schema/context/spring-context.xsd/schema/mvchttps:///schema/mvc/spring-mvc.xsd"><!--开启controller扫描--><context:component-scan base-package=".controller"/><!--配置springmvc的视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><!--⾃动注册最合适的处理器映射器,处理器适配器(调⽤handler⽅法)--><mvc:annotation-driven/></beans>在java⽬录下新建包.controller,下⾯新建DemoController:package .controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import java.util.Date;/*** @author lyj* @Title: DemoController* @ProjectName springmvc-demo* @Description: TODO* @date 2020/6/9 21:21*/@Controller@RequestMapping("/demo")public class DemoController {/*** http://localhost:8080/demo/handle01*/@RequestMapping("/handle01")public ModelAndView handle01(){Date date=new Date();ModelAndView modelAndView=new ModelAndView();modelAndView.addObject("date",date);modelAndView.setViewName("success");return modelAndView;}}在WEB-INF下⾯新建jsp⽂件夹,下⾯新建success.jsp:<%@ page language="java" isELIgnored="false" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body>当前时间 ${date}</body></html>完毕后整个项⽬结构如下:测试:浏览器访问:。

java spring教程 pdf

java spring教程 pdf

java spring教程 pdfJava Spring 是一个开源的框架,用于构建企业级的Java应用程序。

它提供了许多功能和特性,使开发人员能够更快、更方便地构建高质量的应用程序。

本教程将介绍Java Spring框架的一些重要概念和用法,并提供一些实例代码,以帮助读者更好地理解和运用Spring框架。

首先,我们将介绍Spring的概述和基本原理。

Spring通过依赖注入和面向切面编程提供了一种轻量级的解决方案来构建Java应用程序。

它将应用程序的不同模块通过配置文件进行组织和管理,使其更易于维护和扩展。

接下来,我们将介绍Spring的核心模块,包括IoC(控制反转)和AOP(面向切面编程)。

IoC通过将对象的创建和组装过程交给容器来管理,从而实现了对象间的松耦合。

AOP则通过在方法执行前后插入额外的代码,实现了横切关注点的模块化。

然后,我们将介绍Spring的Web模块,包括Spring MVC和Spring Boot。

Spring MVC是一个用于构建Web应用程序的框架,它提供了一种基于模型-视图-控制器(MVC)的架构,使开发人员能够更好地组织和管理Web应用程序的代码。

Spring Boot则是一个简化Spring应用程序开发的工具,它通过自动配置和约定优于配置的方式,减少了开发人员的工作量。

最后,我们将介绍Spring的数据访问模块,包括Spring JDBC和Spring数据访问对象(DAO)。

Spring JDBC提供了一种简化数据库访问的方式,通过将JDBC的复杂性进行封装,使开发人员能够更轻松地访问和操作数据库。

Spring DAO则提供了一种将应用程序与底层数据访问技术解耦的方式,使应用程序更易于维护和扩展。

通过本教程,读者将学习到如何使用Java Spring框架来构建高质量的企业级应用程序。

我们将提供一些实例代码,以帮助读者更好地理解和运用Spring框架的各个模块。

【SpringFramework】Spring入门教程(三)使用注解配置

【SpringFramework】Spring入门教程(三)使用注解配置

【SpringFramework】Spring⼊门教程(三)使⽤注解配置本⽂主要介绍四个⽅⾯:(1) 注解版本IOC和DI(2) Spring纯注解(3) Spring测试(4) SpringJDBC - Spring对数据库的操作使⽤注解配置Spring⼊门说在前⾯学习基于注解的IoC配置,⼤家脑海⾥⾸先得有⼀个认知,即注解配置和xml配置要实现的功能都是⼀样的,都是要降低模块间的耦合度。

仅仅只是配置的形式不⼀样。

关于实际的开发中到底使⽤xml还是注解,每家公司有着不同的使⽤习惯。

所以这两种配置⽅式我们都需要掌握。

基于注解配置的⽅式也已经逐渐代替xml配置。

所以我们必须要掌握使⽤注解的⽅式配置Spring。

配置步骤注意:如果使⽤Eclipse需要先安装了STS插件,或者使⽤STS开发⼯具创建项⽬。

本⽂使⽤IDEA进⾏演⽰。

1.2.1. 第⼀步:拷贝必备jar包到⼯程的lib⽬录。

注意:在基于注解的配置中,我们还要多拷贝⼀个aop的jar包。

如下图:1.2.2. 第⼆步:在类的根路径下创建⼀个任意名称的xml⽂件(不能是中⽂)注意:基于注解整合时,Spring配置⽂件导⼊约束时需要多导⼊⼀个context命名空间下的约束。

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd"></beans>1.2.3. 第⼆步:创建⼀个服务类创建⼀个测试的服务类,并且加⼊使⽤@Component注解,声明该类允许注⼊到Spring容器package org.cjw.service;import ponent;/*使⽤注解配置时,需要将Spring框架启动就创建对象的类表⽰为组件类表⽰组件类使⽤@Component注解*/@Componentpublic class CustomerService {public void save() {System.out.println("-保存数据-");}}1.2.4. 第四步在spring的配置⽂件加⼊扫描注解<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd"><!-- 声明扫描包及其⼦包的类,如果发现有组件注解的类,就创建对象并加⼊到容器中去 --><context:component-scan base-package="org.cjw" /></beans>1.2.5. 第五步:测试调⽤代码package org.cjw.test;import org.cjw.service.CustomerService;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class CustomerServiceTest {@Testpublic void testSave() {ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");CustomerService customerService = context.getBean(CustomerService.class);customerService.save();}}--测试结果,如果可以调⽤服务⽅法,测试成功。

java spring 入门教程

java spring 入门教程

java spring 入门教程Java Spring是一个开源的轻量级Java开发框架,是当今Java企业级应用开发的首选框架之一。

它提供了一个全面的编程和配置模型,可以帮助开发者更加高效地构建可靠的、灵活的、可扩展的企业级应用。

首先,Java Spring框架的核心概念是控制反转(IoC)和面向切面编程(AOP)。

控制反转是指将对象的创建、组装和管理等工作交给Spring容器来完成,而不是由开发者手动创建和管理。

这样做的好处是降低了开发复杂度,提高了代码的可测试性和可维护性。

面向切面编程是指通过横切关注点将应用程序业务逻辑与系统级服务(如日志记录、事务管理等)进行解耦,从而提高代码的可重用性和可维护性。

其次,Java Spring框架提供了一系列的容器和模块,用于支持不同层次的应用开发。

其中,核心容器包括BeanFactory和ApplicationContext,用于管理和控制对象的生命周期。

数据访问模块提供了对数据库访问的支持,包括对JDBC、ORM框架如Hibernate、MyBatis和Spring Data等的集成。

还有Web开发模块,提供了对Servlet、WebSocket、RESTful服务等的支持。

此外,还有安全性、消息队列、缓存等模块可以根据需要进行集成和使用。

此外,Java Spring还采用了一种基于注解的开发模式,使得开发者可以通过简单的注解配置和元数据来实现各种功能。

比如,使用@Component注解可以将一个Java类标记为一个可被Spring容器管理的Bean;使用@Autowired注解可以自动装配Bean之间的依赖关系;使用@Controller和@RequestMapping注解可以实现Web请求的处理等。

这种开发方式提高了开发效率,同时使得代码更加清晰和易于维护。

最后,Java Spring框架还提供了一系列的特性和工具,用于提高应用的性能和可用性。

比如,Spring Boot是一个快速构建应用程序的工具,通过自动配置和约定大于配置的原则,极大地简化了项目的搭建和部署。

SpringBoot菜鸟教程(一)

SpringBoot菜鸟教程(一)

SpringBoot菜鸟教程(一)SpringBoot菜鸟教程(一)一、什么是Spring Boot?1. 简化配置:Spring Boot利用一套默认的约定来实现自动配置,开发者可以少写大量的代码和配置,从而提高开发效率。

2. 内嵌服务器:Spring Boot可以将Tomcat、Jetty等Web服务器嵌入到应用程序中,无需手动配置。

3. 自动装配:Spring Boot会自动根据应用程序的依赖关系,自动装配相应的组件,无需手动配置。

4. 独立运行:Spring Boot应用程序可以以独立的形式运行,不再需要部署到外部服务器。

二、Spring Boot的快速入门1. 环境搭建:首先,需要确保Java和Maven已经安装好。

然后,创建一个新的Maven项目。

2. 引入依赖:在pom.xml文件中添加Spring Boot的依赖。

例如,可以添加spring-boot-starter-web依赖,用于搭建Web应用。

4. 运行程序:在命令行中切换到项目根目录,执行mvn spring-boot:run命令,即可启动Spring Boot应用程序。

5. 测试接口:通过浏览器或者Postman等工具,访问定义的API接口,检查返回的结果。

三、Spring Boot的应用场景1. Web应用:Spring Boot集成了Web开发所需的各种组件,可以用于快速搭建RESTful API、后台管理系统等Web应用。

2. 批处理应用:Spring Boot提供了Spring Batch模块,用于处理大量数据的批量处理任务。

3. 集成应用:Spring Boot可以轻松地集成各种数据库、消息队列、引擎等外部系统,用于构建复杂的集成应用。

4. 微服务:Spring Boot支持使用Spring Cloud构建分布式微服务架构,从而实现高可用、可扩展和可维护的系统。

四、Spring Boot的优势1. 简化开发:Spring Boot提供了默认的配置和约定,大大减少了开发者的工作量,从而提高了开发效率。

java spring框架教程 pdf

java spring框架教程 pdf

java spring框架教程 pdfSpring框架是一个开源的Java开发框架,广泛应用于企业级应用程序的开发中。

它提供了一套全面的解决方案,使开发者能够轻松构建可扩展的Java应用程序。

首先,Spring框架提供了一种轻量级的、非侵入式的编程模型,通过使用IOC(控制反转)和AOP(面向切面编程)的概念,将应用程序的各个组件解耦,并且能够更加灵活地管理和配置这些组件。

IOC将对象的创建和依赖注入交给了框架来完成,而不是由开发者手动管理。

AOP可以在不改变原有代码的情况下,通过额外的横切关注点来实现一些跨越模块的功能。

其次,Spring框架还提供了一套强大的MVC(模型-视图-控制器)架构,帮助开发者构建Web应用程序。

MVC模式将应用程序的业务逻辑、数据和显示逻辑分离开来,使代码更加模块化和可维护。

Spring MVC通过提供注解和XML配置的方式,使开发者能够很容易地定义请求处理方法、URL映射和视图解析器等,并且还支持数据绑定、表单验证和文件上传等功能。

此外,Spring框架还集成了一系列其他的开源框架和类库,如Hibernate、MyBatis、JPA、JDBCTemplate等,以便于在应用程序中使用。

它们可以帮助开发者更加高效地操作数据库,简化开发流程。

除了以上一些主要的特性,Spring框架还提供了一些其他的功能,如事务管理、安全性、消息队列、调度器等。

这些功能能够满足企业级应用程序的各种需求,而且通过Spring的统一配置管理,可以很方便地进行集中管理。

总之,Spring框架是一套非常全面和强大的Java开发框架。

它的出现让Java开发者能够更加专注于业务逻辑的实现,而无需关心底层的复杂性。

因此,学习和掌握Spring框架对于Java开发者来说是非常重要的。

希望这份教程能够帮助读者快速入门和深入理解Spring框架的核心概念和用法,进而提升开发效率和应用程序的质量。

综上所述,Spring框架是一个功能强大且广泛应用的Java开发框架,它提供了一套全面的解决方案,能够帮助开发者轻松构建可扩展的Java应用程序。

Spring3.0 MVC 中文教程

Spring3.0 MVC 中文教程

Spring3 MVC - 3到Spring MVC框架简介Spring3 MVC框架简介Spring MVC是Spring的框架的Web组件。

它提供了丰富的功能,为建设强大的Web应用程序。

Spring MVC框架的架构,并在这样的高度可配置的方式,每一块的逻辑和功能设计。

此外Spring可以毫不费力地与其他流行的Web框架,如Struts,WebWork的,的Java Server Faces和Tapestry集成。

这意味着,你甚至可以告诉Spring使用Web框架中的任何一个。

比Spring更不紧耦合的servlet或JSP 向客户端呈现视图。

喜欢速度与其他视图技术集成,Freemarker的,Excel或PDF现在也有可能。

Spring3.0 MVC系列∙第1部分:到Spring 3.0 MVC框架简介∙第2部分:在Spring 3.0 MVC创建Hello World应用程序∙第3部分:在Spring 3.0 MVC的形式处理∙第4部分:Spring3 MVC的Tiles Support与Eclipse中的例子插件教程∙第5部分:Spring3 MVC的国际化及本地化教程与范例在Eclipse∙第6部分:Spring3 MVC示例教程Spring主题∙第7部分:创建Spring3 MVC Hibernate 3的示例在Eclipse中使用Maven的在Spring Web MVC,你可以使用任何对象作为命令或表单支持对象,你不需要实现框架特定的接口或基类。

Spring的数据绑定是高度灵活的:例如,将验证错误类型不作为应用系统错误,可以通过评估的不匹配。

因此,你不必重复你的业务对象的属性,简单的无类型的字符串,在表单对象仅仅是为了处理无效的意见,或正确转换的字符串。

相反,它往往是最好直接绑定到业务对象。

请求处理生命周期Spring的Web MVC框架是,像许多其他Web MVC框架,要求为导向,围绕一个中心的servlet,它把请求分派给控制器,提供其他功能,有利于开发Web应用而设计的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Spring基础入门一、基础知识1.依赖注入、控制反转依赖注入:在运行期,由外部容器动态地将依赖对象注入到组件中控制反转:应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部窗口负责得。

这样控制权就由应用转移到了外部容器,控制权的转移就是所谓的反转。

2.spring 的主要特性。

(1)降低组件之间的耦合度,实现软件各层之间的解耦。

(2)可以使用容器提供的众多服务,如:事务管理服务、消息服务、JMS 服务、持久化服务等等。

(3)容器提供单例模式支持,开发人员不再需要自己编写实现代码。

(4)容器提供了AOP 技术,利用它很容易实现如权限拦截,运行期监控等功能。

(5)容器提供的众多辅作类,使用这些类能够加快应用的开发,如:JdbcTemplate、HibernateTemplate.(6)对主流的应用框架提供了集成支持。

3.常用技术控制反转/依赖注入---面向切入编程---与主流框架的整合、管理---二、实例拓展1.准备搭建环境dist\spring.jarlib\jakata-commons\commons-loggin.jar如果使用了切面编程,还需下列jar 文件:lib\aspectj\aspectjweaver.jar 和aspectjrt.jarlib\cglib\cglib-nodep-2.1.3.jar如果使用了jsr-250 中的注解,还需要下列jar 文件:lib\j2ee\common-annotations.jar2.搭建并测试环境建立名为spring_01_base项目,根据需求导入jar包。

建立一个Junit测试单元SpringEnvTest,测试代码如下:@Testpublic void testEnv() {ApplicationContext ctx = newClassPathXmlApplicationContext("beans.xml");}beans.xml 配置文件在此省略(见下)。

运行此测试如无错,则说明环境搭建成功。

说明:beans.xml 可以在类路径下进行配置,也可以在具体的目录下配置。

可以是一个配置文件,也可以是多个配置文件组成String 数组传入。

3.实例作如下准备工作:(1)建立UseDao接口,代码如下:package com.asm.dao;public interface UserDao {void save();}(2)建立UserDao接口的实现类,UserDaoImplpackage com.asm.dao.impl;import erDao;public class UserDaoImpl implements UserDao{public void save() {System.out.println("执行save方法...");}}(3)在src目录下配置此beans.xml,它的配置如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.5.xsd"><bean id="userDaoImpl" class="erDaoImpl" /></beans>说明:bean 代表一个实质的java 类,通过它的id 可以获取一个此类的一个对象。

补充:让xml 配置文件在编译时提示[windows][preferences][myeclipse][files and editors][xml][xml catalog] 点add,在出现窗口的location 中选“file system”,然后在spring 解压目录的dist/resources 目录中选择“spring-beans-2.5.xsd”,并将key Type 值改为“Schema Location”,key 值为:/schema/beans/spring-beans-2.5.xsd(4)Junit 测试单元SpringEnvTest 中增加如下代码测试:@Testpublic void base() {ApplicationContext ctx = newClassPathXmlApplicationContext("beans.xml");UserDao userDao = (UserDao) ctx.getBean("userDaoImpl");userDao.save();}以上的代码就是通过配置文件beans.xml 获取所需要的实例对象。

4.三种bean 的生成方式除了上面使用的类直接生成方式,还有bean 静态工厂及bean 实例工厂。

bean 静态工厂的配置如下:<bean id="userDaoImpl2" class="erDaoImplFactory" factory-method="getUserDaoImpl"/>相应的工厂类代码如下:package com.asm.dao.impl;public class UserDaoImplFactory {public static UserDaoImpl getUserDaoImpl(){return new UserDaoImpl();}}bean实例工厂的配置如下:<bean id="factory" class="erDaoImplFactory2"/><bean id="userDaoImpl3" factory-bean="factory"factory-method="getUserDaoImpl"/>相应的工厂类的代码如下:package com.asm.dao.impl;public class UserDaoImplFactory2 {public UserDaoImpl getUserDaoImpl() {return new UserDaoImpl();}}5.bean 的作用域singleton:返回bean 的同一个实例,也是默认的作用域(无状态bean 使用此作用域)prototype:每次请求都会创建一个实例(有状态bean 使用此作用域)request、session、global session 这三个作用域主要用在web 应用中6.bean 的生命周期(1)什么时候初始化bean 实例当scope=singleton,即默认情况,会在装载配置文件时实例化。

如果希望在调用getBean 时才初始化,可以使用lazy-init="true" 补充:如果希望希望该配置文件中的所有bean 都延迟初始化,则应在beans 根结点中使用lazy-init="true"。

当scope=prototype 时,在调用getBean()方法时才会初始化。

(2)生命周期:构造器、init 方法、获取bean 后的操作、destroy 方法(ctx.close、注意如果bean 的scope 设为prototype 时,当ctx.close 时,destroy 方法不会被调用)7.属性注入Setter 方式(1)简单属性(如String):<bean id="userServiceBean" class="erServiceBean"><property name="id" value="10"></property><property name="username" value="张某某"></property></bean>(2)对象属性-外部bean 注入:在上面的<bean>中增加如下配置:<property name="userDao" ref="userDaoImpl"/>对象属性-内部bean注入:在上面的<bean>中增加如下配置:<property name="userDao"><bean id="temp" class="erDaoImpl"/></property>(3)集合属性注入:<property name="list"><list><value>List值一</value><value>List值二</value><value>List值三</value></list></property><property name="set"><set><value>Set值二</value><value>Set值一</value><value>Set值三</value></set></property><property name="map"><map><entry key="one" value="一" /><entry key="two" value="二" /><entry key="three" value="三" /></map></property><property name="pro"><props><prop key="p1">first</prop><prop key="p2">second</prop><prop key="p3">third</prop></props></property>注意:在相应的字段上一定要有setter 方法,才能注入。

相关文档
最新文档