Spring入门

Posted xmf3628

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring入门相关的知识,希望对你有一定的参考价值。

1. 什么是spring,它能够做什么?
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
目的:解决企业应用开发的复杂性
功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
范围:任何Java应用
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架

 

2. 什么是控制反转(或依赖注入)
控制反转(IoC=Inversion of Control)IoC,用白话来讲,就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
IoC还有一个另外的名字:“依赖注入 (DI=Dependency Injection)” ,即由Spring容器动态的将某种依赖(相关Dao类)关系注入到组件(Biz)之中

案例:实现Spring的IoC

IOC/DI
将以前由程序员实例化对象/赋值的工作交给了spring处理

 

 

 


如何使用Spring(5.0.1.RELEASE)
1)在pom.xml文件中引入spring-core、spring-context的jar支持

技术图片

 


2)在resources目录右键 New -> Spring -> Spring Bean Configuration File
3)勾选aop、context、beans支持

 技术图片

3. 如何在spring当中定义和配置一个JavaBean(使用无参构造方法+set方法创建一个JavaBean)
3.1 id:在容器中查找Bean的id(唯一、且不能以/开头)

 

3.3 name:在容器中查找Bean的名字(唯一、允许以/开头、允许多个值,多个值之间用逗号或空格隔开)
3.4 scope:(singleton|prototype)默认是singleton
3.4.1 singleton(单例模式):在每个Spring IoC容器中一个bean定义对应一个对象实例
3.4.2 prototype(原型模式/多例模式):一个bean定义对应多个对象实例

 

技术图片

 

 

技术图片

 


3.4 abstract:将一个bean定义成抽象bean(抽象bean是不能实例化的),抽象类一定要定义成抽象bean,非抽象类也可以定义成抽象bean

3.5 parent:指定一个父bean(必须要有继承关系才行)

技术图片

 

技术图片

 


3.6 init-method:指定bean的初始化方法

技术图片

 


3.7 constructor-arg:使用有参数构造方法创建javaBean

 技术图片

 读取applicationContext.xml文件

技术图片

因为我们给该bean设置成多例模式,所会打印3个new hello()

技术图片

技术图片

技术图片

 技术图片

 

 技术图片

技术图片

 

 

 

 技术图片

 

 

 技术图片

技术图片

技术图片

技术图片

技术图片

 技术图片

 

 技术图片

 技术图片

技术图片

<!--   list/array/map/properties -->
          <property name="list">
          <list>
             <value>zs</value>
             <value>ls</value>
             <value>ww</value>
             <value>ll</value>
          </list>
          
          </property>
        
        <property name="arr">
         <array>
          <value>zs</value>
             <value>ls</value>
             <value>ww</value>
             <value>ll</value>
         </array>
        </property>
        
        <property name="map">
        <map>
           <entry>
             <key>
                <value>name</value>
             </key>
             <value>张三 </value>
           </entry>
           
           <entry>
             <key>
                <value>age</value>
             </key>
             <value>20</value>
           </entry>
        </map>
        
        </property>
        
        <property name="prop">
        <props>
          <prop key="name">
           大侠
          </prop>
           <prop key="age"></prop>
        </props>
        
        </property>

 

 技术图片

 

 

spring与web项目的集成

WEB项目如何读取spring上下文
通过监听器实现ServletContextListener
contextConfigLocation:classpath:applicationContext-*.xml

<!-- 配置SpringListener监听器的Spring配置文件路径 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
<!-- 配置SpringListener监听器 -->
<listener>
<listener-class>com.zking.spring01.util.SpringListener</listener-class>
</listener>

 

public class SpringListener implements ServletContextListener

     private String path="classpath:spring.xml";

    @Override
    public void contextDestroyed(ServletContextEvent sce) 
        // TODO Auto-generated method stub
       System.out.println("contextDestroyed被销毁");
    

    @Override
    public void contextInitialized(ServletContextEvent sce) 
        // TODO Auto-generated method stub
      System.out.println("contextInitialized初始化");
    
       //Spring与web集成,获取servlet上下文
      ServletContext application = sce.getServletContext();
      String filepath = application.getInitParameter("config");
      if(null!=filepath) 
         path=filepath;
         //初始化Spring上下问容器
         ApplicationContext ac=new ClassPathXmlApplicationContext(path);
         SpringWebUtils.setContext(application, ac);
     
     
    
     

 

 web.xml配置

技术图片

 

 index.jsp测试

技术图片

技术图片

 

以上是关于Spring入门的主要内容,如果未能解决你的问题,请参考以下文章

Spring入门— IOC注解Spring测试AOP入门

Spring MVC 入门示例讲解

Spring 入门

spring入门

Spring入门:使用Maven管理Spring项目

Spring Boot 入门 (5) 深入Actuator