Spring框架简易入门(一)

介绍

    Spring框架是个轻量级的JAVA EE框架。所谓轻量级,是指不依赖于容器就能运行的。Struts、Hibernate也是轻量级的。

    轻量级框架是相对于重量级框架而言的,重量级框架必须依赖特定的容器,例如EJB框架就必须运行在Glassfish、JBOSS等支持EJB的容器中,而不能运行在TOMCAT中。

    SPring以IOC、AOP为主要思想,其中IOC,inversion of controller 是指控制反转或者反向控制。在Spring框架中我们通过配置创建类对象,由Spring在运行阶段实例化,组装对象。AOP Aspect Oriented Programming,面向切面编程,其思想史在执行某些代码前执行另外的代码,使程序更加灵活,扩展性更好,可以随便的添加,删除某些功能,Servlet中的Filter便是一种AOP思想的实现。

    Spring同时也是个“一站式”框架,即Spring在JAVAEE 的三层框架(表现层、业务逻辑层、数据访问层)中,每一层均提供了不同的解决技术。如下:

    表现层:Spring MVC

    业务逻辑层:IOC

    数据访问层:jdbcTemplate

IOC入门:

    1、导入Spring框架中的相关jar包,这里只导入Spring的Core模块下的jar包(Core模块是框架的核心类库),以及支持日志输出的commons-logging和log4j的jar包。

    2、创建一个普通的java类,并在该类中创建方法如下:

    User.java

public class User{
   public void add(){
       System.out.println("add...");
   }
}

    3、创建Spring的配置文件,进行Bean的配置

    Spring的核心配置文件名称和位置不是固定的,但是官方建议将核心配置文件放在src目录下,且命名为applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/heans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframeword.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.sxd">
    <bean id="user" class="com.newcode.ioc.User"></bean>
</beans>

    4、编写测试类进行测试,通过配置文件创建类对象

    testIOC.java

public class TestIOC{
  public void testUser(){
     ApplicationContext context = new ClasspathXmlApplicationContext("applicationContext.xml");
     User user = (User)context.getBean("user");
     user.add();
  }
}

Bean实例化的方式

    在Spring中通过配置文件创建对象,Bean实例化三种方式实现:

    1、使用类的无参构造创建,如:

<bean id="user" class="com.newcode.ioc.User"></bean>

    2、使用静态工厂 创建

    如果一个Bean不能通过new直接实现实例化,而是通过工厂的某个静态方法创建的,需要把<bean>的class属性配置伪工厂类,如:

<bean id="user" class="com.newcode.ioc.UserFactory" factory-method="createInstance"></bean>

    3、使用实例工厂创建

    如果一个Bean不能通过new直接实例化,而是通过工厂类的某个实例方法创建的,需要先配置工厂的<bean>标签,然后在需要创建的对象bean标签的factory-bean属性配置为工厂类对象,factory-method属性配置为生产实例的方法,如:

<bean id="userFactory" class="com.newcode.ioc.UserFactory"></bean>
<bean  id="user" factory-bean="userFactory" factory-method="createInstance"></bean> 

    Bean标签的常用属性

    1、id属性,用于指定配置对象的名称,不能包含特殊符号

    2、class属性,创建对象所在类的全路径

    3、name属性,功能同id属性一致,但是在name属性中可以包含特殊符号

    4、scope属性

        (1)singleton:默认值,单例模式下,在程序中只有一个实例。非单例模式下,每次请求该bean,都会生成一个新的对象

        (2)prototype:多例

        (3)request:创建对象后将对象存放到request域

        (4)session:创建对象后将对象存放到session域中

        (5)globalSession:创建对象后将对象存放到globalSession域

属性注入:

    属性注入指创建对象时,向类对象的属性设置属性值。

    在Spring框架中支持set方法注入和有参构造函数注入,即创建对象后通过set设置属性或采用有参构造函数创建对象并初始化

使用有参构造函数注入属性

    Demo1.java 提供有参的构造方法

public class Demo1{
  private String demoName;
  public Demo1(String demoName){
    this.demoName = demoName;
  }
  public void out(){
    System.out.println(demoName);
  }
}

    bean的配置

<bean id="demo1" class="com.newcode.Demo1">
   <constructor-arg name="demoName" value="demo1"></constructor-arg>
</bean>

    使用set方法注入属性

        案例:

        Demo2.java提供属性的set方法

        

public class Demo2{
  private String demoName;
  public void setDemoName(String demoname){
    this.demoName = demoName;
  }
  public void out(){
    System.out.println(demoName);
  }
}

    bean的配置

<bean id="demo2" class="com.newcode.ioc.Demo2">
    <property name="demoName" value="Demo2"></property>
</bean> 

    p名称空间注入属性

        之前提到了一种set方法的属性注入方式,这里将介绍另一种属性注入的方式,名为p名称空间注入

<bean id="demo2" class="com.nwcode.ioc.Demo2" p:demoname="demo2"></bean>


    

猜你喜欢

转载自blog.csdn.net/JiayaoXu/article/details/80432987