spring配置与使用

一,关于spring概念的理解

1,spring可以看做是项目的管家,负责管理项目中的所有对象(包括web层,service层和dao层)。

2,spring一站式框架:spring跨年性质是属于容器性质的,它之所以能够处理请求,是因为容器中装了处理请求的对象,容器中装了什么对象它就具备什么功能,所以称之为一站式。

3,spring的核心是IOC反转控制和AOP面向切面

4,spring不排斥任何开源框架,并且能够帮助其他框架管理对象

spring中IOC和DI的概念

ioc 反转控制 就是将我们创建对象的方式反转了 以前对象的创建时由开发人员自己维护 包括依赖关系也是自己注入 学习spring之后 对象的创建以及依赖关系可以由spring完成创建和注入 反转控制也就是反转了对象的创建方式 从人们自己到由spring自己进行

di 比IOC概念要小一些 Dependency Injection 依赖注入
实现IOC思想 DI做支持

注入:set方法注入 构造方法注入 字段注入
注入类型:spring支持值类型和引用类型注入
值类型注入也就是 比如刚才的demo ,user中可以注入具体的名字或者年龄 也就相当于八大基本数据类型
引用类型注入:将依赖的对象注入 比如,将新建的address对象注入到user对象中
BeanFactory和ApplicationContext

BeanFactory接口:最底层的接口,是spring的最原始接口,针对原始接口的实现类,功能较为单一。 BeanFactory接口实现类的特点是,每次在获得对象时才会创建对象

ApplicationContext实现类:ApplicationContext实现类的特点是每次容器启动时就会创建容器中创建的所有对象,除此以外,它还提供了更加丰富的功能。典型的两个ApplicationContext的实现类为:ApplicationContex从类路径下加载配置文件ClassPathXmlApplicationContext . ApplicationContext从硬盘绝对路径下加载配置文件FileSystemXmlApplicationContext 。 在单机情况下通常使用ClassPathXmlApplicationContext . 若使用后者,在硬盘绝对路径下加载,则需要在后面加上括号指明文件的具体路径。

结论上来说:在将来web开发中,使用applicationContext完成,而在资源匮乏的环境中可以使用BeanFactory(资源匮乏:如在手机上)

二,spring搭建步骤

1,导包

spring首先导入四个基本包

日志包

总包

2,创建一个对象让spring装,

创建一个bean包,并在这个包中创建user.java(也就是Javabean),并且创建属性,也就是创建了对象

3,在src中书写配置,注册对象到容器,书写xml文件,applicationContext.xml放在src下(这个文件的本身位置是任意的,名字也是任意的,只是建议这样书写)

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">

<bean  name="user" class="cn.itcast.bean.User" ></bean>

<beans>

4,约束引入,在Windows下面的属性中选择cata,如下图操作

然后将user对象交给spring容器处理

5,接下来进行代码测试,编写测试类代码Demo.java

package cn.itcast.a_hello;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.itcast.bean.User;

public class Demo {
@Test
public 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,ApplicationContext.xml中bean元素相关配置各个标签的作用

bean元素:使用该元素描述spring容器管理的对象

name属性:给被管理的对象起个名字,获得对象是根据名称获得对象

class属性:被管理对象的完整类名

ID属性:与name属性一模一样,关于ID的话,名称不可重复,不能使用特殊字符;name属性名称则可以重复,可以使用特殊字符。结论:尽量使用name属性。

1.1 Bean元素的进阶,scope属性(重点是singleton和prototype):

一般情况下是使用singleton,但是要整合struts2时则要在ActionBean中使用prototype。而request和session属性基本上是用不到的。

singleton(默认值):单例对象,所谓单例对象,就是在spring容器中只会存在一个的实例

prototype属性:多例原型被标记为多例的对象,每次再获得才会创建并且每次创建都是新的对象

request: web环境下,对象与request生命周期一致,也就是每当请求处理完一次,对象将从spring容器中移除

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

1.2 Bean元素的进阶,生命周期属性(了解)

生命周期属性,配置一个方法作为生命周期初始化方法,spring会在对象创建之后立即调用(init-method)。也可以配置一个对象作为销毁方法,spring在关闭并销毁所有容器中的对象之前调用(destory-method)

2,三种对象创建方式

创建方式一:空参构造创建(重点)

配置文件

然后只需在demo.java中编写测试类

创建方式二:静态工厂创建(了解)

配置:

调用UserFactory的createUser方法创建名为user2的对象.放入容器

<bean  name="user2" 
class="cn.itcast.b_create.UserFactory"

factory-method="createUser" ></bean>

userFactory.Java工厂如下:

最后编写测试类

创建方式三:实例工厂创建(了解)

实例工厂创建和静态工厂创建类似,只是在userFactory.java中,静态工厂使用了static 而实例工厂没有使用static。静态工厂可以直接使用类名完成各项功能的实现,而实例工厂则需要有固定的对象,才可以完成功能的实现。

配置文件:

调用UserFactory对象的createUser2方法创建名为user3的对象.放入容器

UserFactory.java中工厂的编写

接下来就是测试类,测试类同静态方法创建一样。

3, spring的模块化配置

分模块配置,随着项目的开发,文件越来越多,可能吧所有对象都放一个配置文件里面太多,于是可以再一个主配置文件中引入其他配置文件,导入其他配置文件关键词:<import resource="分配置文件的所在路径">

4,spring属性注入(set方式)

spring属性注入方式一共有四种:set方法注入;构造函数注入;p名称空间注入;spel注入;其中后两种作为了解,前两种作为掌握。

4.1  set方式注入,以下为其在配置文件中的操作,具体还需建立user和car的bean。并得到他们的get set 以及toString方法

4.2构造函数注入

4.3,p名称空间注入(可以简化property那种繁琐的注入)

4.4,spel注入(Spring Expression Language 也就是Spring表达式语言)

原文地址:https://www.cnblogs.com/319064057-lx/p/10849860.html

时间: 2024-10-15 13:46:20

spring配置与使用的相关文章

spring配置hibernate的sessionFactory的几种方法

分类: JAVA Spring Hibernate 2013-01-27 20:47  1851人阅读  评论(0)  收藏  举报 spring配置hibernate的sessionFactory 之前用spring2+hibernate3+struts2开发了一个彩信发布系统,由于第一次使用此架构,造成applicationContext.xml中的配置非常冗长,而且经常因为更改一个小配置项(例:数据库ip.用户名.密码等)将此文件作修改,这及不利于项目维护,万一粗心造成其他地方变动,会对本

.嵌入式jetty启动spring(java配置方式),junit测试用.标准spring 配置(java config) 嵌入式jetty9启动

package com.doctor.embeddedjetty; import java.util.concurrent.TimeUnit; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.springframework.web.con

spring 配置资源路径时候,classpath:/,classpath:,不带前缀的区别

/** * spring 配置资源路径时候,classpath:/,classpath:,不带前缀的区别, * 其实没区别,spring 规定 "classpath:" pseudo-URL,伪url路径,在处理这种路径前缀 * 时候,会把这个伪url去掉. * @author doctor * * @time 2014年12月2日 下午6:28:12 */ public class DefaultResourceLoaderPractice { @Test public void t

spring配置,spring中的bean 的id不能相同

lib下加入包 spring.jar commons-logging.jar src下添加 applicationContext.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLS

spring 配置属性细节

苹果的WWDC ,除了发布了os x 10.10 和IOS8 外,还推出了Swift.详细点击这里 代码总体风格有点像Java,也有点像javascript. 下面给出一些代码段(来自苹果官方手册): println("Hello, world") "var myVariable = 42 myVariable = 50 let myConstant = 42" 摘录来自: Apple Inc. "The Swift Programming Languag

最最最小化的spring配置

这个配置只能用来使用最基本的spring bean的使用. 只需要这些包(MAVEN的POM.XML文件): <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-core</artifactId>            <version>4.0.0.RELEASE</version>    

spring配置中,properties文件以及xml文件配置问题

spring方便我们的项目快速搭建,功能强大,自然也会是体系复杂! 这里说下配置文件properties管理的问题. 一些不涉及到代码逻辑,仅仅只是配置数据,可以放在xxxx.properties文件里面,项目功能复杂的时候,往往properties文件很多,这时,就比较容易让人困惑,有些properties的文件内容总是加载不起来,应用启动时,就不断爆出错误,说某某参数加载失败,这个是什么原因呢? 其实,这个是spring配置的时候,org.springframework.beans.fact

Spring的DataSource配置、将Hibernate配置全部写到Spring配置

DataSource可以集中管理数据库连接,减少维护工作量,使部署更简单: Spring的DataSource配置:(Spring数据源配置)这里使用dbcp,还有很多其他的如c3p0,jdbc,jndi等 DataSource和定义普通Bean一样,指定id.类别,注入属性: 站点停止时,应该调用DataSource的close方法,通过destroy-method属性配置实现: 1,在Spring配置文件配置DataSource的bean: <bean id="dataSource&q

Spring配置DataSource数据源

在Spring框架中有如下3种获得DataSource对象的方法: 1.从JNDI获得DataSource. 2.从第三方的连接池获得DataSource. 3.使用DriverManagerDataSource获得DataSource. 一.从JNDI获得DataSource SpringJNDI数据源配置信息: <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean&qu

SSH框架系列:Spring配置多个数据源

问题:有开源框架mysql的 ,还有旧系统 sqlserver2000的,解决这些问题总有些成长. 解决sqlserver安装环境:http://qdh68.blog.163.com/blog/static/13756126201261742437357/ 别说sqlserver2000不怎么样,最起码那友好的管理叫你明白数据库. 2.  先说配置jdbc:如果sqlserver 2000以上还好 找到jar包 ,按目录加载到maven仓库,安装一下 http://outofmemory.cn/