Spring框架入门

Spring介绍

Spring框架是个轻量级的Java EE框架。所谓轻量级,是指不依赖于容器就能运行的。   
轻量级框架是相对于重量级框架而言的,重量级框架必须依赖特定的容器,例如EJB框架就必须运行在Glassfish、JBoss等支持EJB的容器中,而不能运行在Tomcat中。   
Spring以IoC、AOP为主要思想,其中IoC,Inversion of Control 指控制反转或反向控制。在Spring框架中我们通过配置创建类对象,由Spring在运行阶段实例化、组装对象。AOP,Aspect Oriented Programming,面向切面编程,其思想是在执行某些代码前执行另外的代码,使程序更灵活、扩展性更好,可以随便地添加、删除某些功能。Servlet中的Filter便是一种AOP思想的实现。   
Spring同时也是一个“一站式”框架,即Spring在JavaEE的三层架构[表现层(Web层)、业务逻辑层(Service层)、数据访问层(DAO层)]中,每一层均提供了不同的解决技术。如下: 表现层(Web层):Spring MVC 业务逻辑层(Service层):Spring的IoC 数据访问层(DAO层):Spring的jdbcTemplate Spring中的IoC操作   将对象的创建交由Spring框架进行管理。

针对自己初学者刚入门框架的一种学习分享,只是学会怎么去使用框架来实现一些Demo的分享。

IoC

IoC即控制反转操作分为:IoC配置文件方式和IoC的注解方式。
(1)导入Spring框架中的相关jar包,以及 支持日志输出的 commons-logging 和 log4j 的jar包;
(2)创建一个普通的Java类,并在该类中创建方法,如下:

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

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

Spring的核心配置文件名称和位置不是固定的。但官方件建议将该核心配置文件放在src目录下,且命名为 applicationContext.xml。这个命名也不是固定的,但是用的时候相应注意就好。
 这里为了方便,将核心配置文件放在src目录下,并命名为 bean1.xml,这个配置文件模板可以到百度去找,然后复制过来即可。内容如下:

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

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

    TestIoC.java  package ioc;  import org.junit.Test; 
     import org.springframework.context.ApplicationContext; 
     import org.springframework.context.support.ClassPathXmlApplicationContext;  
   public class Test {    
   @Test     public void testUser() {        
    // 1. 加载Spring配置文件,根据创建对象         
     ApplicationContext context = new    ClassPathXmlApplicationContext("bean1.xml");         
  // 2. 得到配置创建的对象        
      User user = (User) context.getBean("user"); 
      System.out.println(user);      
     user.add();   
      }
   }

Spring的bean管理(配置文件) Bean实例化的方式

在Spring中通过配置文件创建对象。 Bean实例化三种方式实现:
(1)使用类的无参数构造创建:

      <!-- 等同于 user = new ioc.User(); -->   
      <bean id="user" class="ioc.User">
  </bean> 

(2)使用静态工厂创建

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

(3)使用实例工厂创建

 <bean id="userFactory" class="com.wm103.ioc.UserFactory"></bean>   

  <bean id="user" factory-bean="userFactory" factory-method="createInstance">
    </bean> 

Bean标签的常用属性

(1)id属性:
用于指定配置对象的名称,不能包含特殊符号。
(2)class属性:创建对象所在类的全路径。
(3)name属性:功能同id属性一致。但是在name属性值中可以包含特殊符号。
(4)scope属性 singleton:默认值,单例 单例模式下,在程序下只有一个实例。非单态模式下,每次请求该Bean,都会生成一个新的对象。 prototype:多例 request:创建对象后将对象存放到request域 session:创建对象后将对象存放到session域 globalSession:创建对象后将对象存放到globalSession域 属性注入 
属性注入指创建对象时,向类对象的属性设置属性值。
  在Spring框架中支持set方法注入和有参构造函数注入,即创建对象后通过set方法设置属性或采用有参构造函数创建对象并初始化属性。 使用有参构造函数注入属性

 package ioc;
 public class Demo1 {   
 private String demoName;      
  public Demo1(String demoName) {         
      this.demoName = demoName;     
}    
  public void out() {        
       System.out.println("This is Demo1.");    
       } 
} 

bean的配置:

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

创建Demo1对象进行测试:

    @Test public void testDemo1() {    
     // 1. 加载Spring配置文件,根据创建对象     
        ApplicationContext context = new       ClassPathXmlApplicationContext("bean1.xml");     
    // 2. 得到配置创建的对象     
       Demo1 demo1 = (Demo1) context.getBean("demo1");
       System.out.println(demo1);    
       demo1.out();
   } 

使用set方法注入属性

     package ioc; 
    public class Demo2 {   
        private String demoName;      
        public void setDemoName(String demoName) {         
              this.demoName = demoName;    
 }      
        public void out() {         
                System.out.println("This is Demo2.");     
  } 
}

bean的配置:

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

创建Demo2对象进行测试:

  @Test public void testDemo2() {     
    // 1. 加载Spring配置文件,根据创建对象    
   ApplicationContext context = new     ClassPathXmlApplicationContext("bean1.xml");   

  // 2. 得到配置创建的对象    
     Demo2 demo2 = (Demo2) context.getBean("demo2");
         System.out.println(demo2);     
        demo2.out(); } 
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容