spring配置与使用

1、Spring介绍

1. 什么是Springjava

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

 

2. 为何要学习Springspring

  • 方便解耦,简化开发
    • Spring 就是一个大工厂,能够将全部对象建立和依赖关系维护,交给 Spring 管理
  • AOP 编程的支持
    • Spring 提供面向切面编程,能够方便的实现对程序进行权限拦截、运行监控等功能
  • 声明式事务的支持
    • 只须要经过配置就能够完成对事务的管理,而无需手动编程
  • 方便程序的测试
    • Spring 对 Junit4 支持,能够经过注解方便的测试 Spring 程序
  • 方便集成各类优秀框架
    • Spring 不排斥各类优秀的开源框架,其内部提供了对各类优秀框架(如:Struts、Hibernate、MyBatis、Quartz 等)的直接支持 下降 JavaEE API 的使用难度
  • Spring 对 JavaEE 开发中很是难用的一些 API(JDBC、JavaMail、远程调用等),都提供了封装,使这些 API 应用难度大大下降。

3. Spring 的版本编程

Spring 3.X 和 Spring4.X服务器

Spring 3.0.2版本:将市面上常见的、支持整合进来的工具类所有进行了收录,这个包里面有不少不少jar包。可是这是Spring坚持“作好事”的最后一个版本,没有任何回报。架构

 

1. IOC思想和DI技术app

(1)IOC (Inverse Of Control):控制反转,将咱们建立对象的方式反转了。框架

之前对象的建立是由开发人员本身维护,包括依赖关系也是本身注入。使用了Spring以后,对象的建立以及依赖关系能够由Spring完成建立以及注入。ide

(2)DI(Dependency Injection):依赖注入。将必须的属性注入到对象当中,是实现IOC思想的必要条件。函数

须要有 IOC 的环境,Spring 建立这个类的过程当中,Spring 将类的依赖的属性设置进去。

 

2. Spring中的工厂(容器)

(1)ApplicationContext

ApplicationContext接口有两个实现类:

  • ClassPathXmlApplicationContext :加载类路径下 Spring 的配置文件
  • FileSystemXmlApplicationContext :从绝对路径上加载本地磁盘下 Spring 的配置文件,基本用不着。

 

3. Spring生成Bean的三种方式(三种对象建立方式)

对象的建立必须通过类的构造函数。

(1)空参构造建立  --最重要

在上面示例中的User对象中加一个无参构造函数

从新建立一个包,把applicationContext.xml复制进该包中,把测试类testSpringDemo.java复制进该包中,并修改该文件中applicationContext.xml的位置。

具体代码以下:

package com.mao.gouzao;  
  
public class Person   
{  
    private String name;  
  
    public Person(String name) 
this.name=name;  
    {  
        System.out.println("Spring容器开始经过无参构造器建立Bean实例------------");  
    }  
    
    public void input()  
    {  
        System.out.println("欢迎来到个人博客:"+name);  
    }  
  
}  
person.java
<?xml version="1.0" encoding="GBK"?>  
<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.0.xsd">  
    <!-- 指定class属性,经过构造方法建立Bean实例 -->  
    <bean id="person" class="com.mao.gouzao.Person">  
      <!-- 经过构造方法赋值 -->  
     <constructor-arg name="name" value="魔术师"></constructor-arg>  
    </bean>  
</beans>  
beans.xml
import org.springframework.context.ApplicationContext;  
import org.springframework.context.support.ClassPathXmlApplicationContext;  
  
public class PersonTest   
{  
    public static void main(String[]args)  
    {  
        //建立Spring容器  
        ApplicationContext ctx=new ClassPathXmlApplicationContext("beans.xml");  
        //经过getBean()方法获取Bean实例  
        Person person=(Person) ctx.getBean("person");  
        person.input();  
    }  
}  
PersonTest.java
相关文章
相关标签/搜索