zoukankan      html  css  js  c++  java
  • Spring框架(1)--只是入门

    一、Spring的简介概述

    Spring是什么:

      Spring是分层的Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。提供了展现层SpringMVC和持久层Spring JDBCTemplate以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架。

    Spring所具有的优势:

      1.方便解耦,简化开发  2.AOP 编程的支持  3.声明式事务的支持  4.方便程序的测试

    Spring的功能:

      IOC:控制反转,其实就是把对象的创建权,交给spring,由Spring负责给我们创建对象。

      DI: 依赖注入,其实就是给对象的成员变量赋值。

      AOP:面向切面编程,底层就是动态代理。

      事务: Spring提供了声明式事务,也就是说,我们可以通过配置的方式来添加事务。

    Spring的结构:

    二、Spring的快速入门

    Spring的开发步骤:

    1.导入Spring基本包坐标

      因为创建的是Maven模块,所以在pom里直接输入以下代码就可以了。

     1 <properties>
     2     <spring.version>5.0.5.RELEASE</spring.version>
     3 </properties>
     4 <!--导入spring的context坐标,context依赖core、beans、expression-->
     5 <dependencies> 
     6     <dependency>  
     7         <groupId>org.springframework</groupId> 
     8         <artifactId>spring-context</artifactId> 
     9         <version>${spring.version}</version>
    10     </dependency>
    11 </dependencies>

    2.创建完成功能的接口和实现类

      创建Dao层编写接口UserDao和实现类UserDaoImpl

     1 public interface UserDao {  
     2     public void save();
     3 }
     4 
     5 public class UserDaoImpl implements UserDao {  
     6     @Override  
     7     public void save() {
     8         System.out.println("UserDao save method running....");
     9     }
    10 }

    3.创建Spring的核心配置文件applicationContext

      在类路径下(resources)创建applicationContext.xml配置文件

    1 <beans xmlns="http://www.springframework.org/schema/beans"
    2             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3             xsi:schemaLocation="http://www.springframework.org/schema/beans
    4             http://www.springframework.org/schema/beans/spring-beans.xsd">
    5 
    6           <!-- 配置UserDaoImpl --> 
    7           <bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"></bean>
    8 
    9 </beans>

    4.使用Spring的API获取Bean对象调用方法

      创建个Test类测试

    1 @Test
    2 public void test1(){
    3     //加载spring配置文件。获取spring核心容器
    4     ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    5     //获取spring容器中的userDao对象
    6     UserDao userDao = (UserDao) ac.getBean("userDao");
    7     //调用方法
    8     userDao.save();
    9 }

    三、Spring入门的知识点小结

    applicationContext.xml核心配置文件中的Bean标签的配置:

    <bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl" scope="singleton"></bean>

      id:唯一性标识,在同一个配置文件中不可重复

      class:bean的全限定名称,指向你编写的功能实现类

      scope:指对象的作用范围:

    取值范围说明
    ==singleton== 默认值,单例的,立即加载
    ==prototype== 多例的,延迟加载
    request WEB项目中,Spring创建一个Bean的对象,将对象存入到request域中
    session WEB项目中,Spring创建一个Bean的对象,将对象存入到session域中
    global session WEB项目中,应用在Portlet环境,如果没有Portlet环境那么globalSession相当于session

      init-method:指定类中的初始化方法名称,当对象被创建时,调用该方法。

      destroy-method:指定类中销毁方法名称,当对象被销毁时,调用该方法。

    Bean实例化的三种方式:

    1*.使用无参构造方法实例化:

      默认调用无参构造方法创建对象,如果bean中没有默认无参构造函数,将会创建失败,因为在实现类中默认拥有无参构造方法,所以在核心配置文件中直接配置bean就可以使用,以上的编写方式就是该种实例化方式。

    2.工厂静态方法实例化:

      新创建个工厂类

    1 //工厂类
    2 public class StaticFactoryBean {
    3     //静态方法,通过该方法获取对象
    4     public static UserDao createUserDao(){    
    5         return new UserDaoImpl();
    6     }
    7 }

      在applicationContext中

    1 <!-- 调用StaticFactoryBean类的静态方法createUserDao获取对象 -->
    2 <bean id="userDao" class="com.itheima.factory.StaticFactoryBean"  factory-method="createUserDao" />

      然后在test中获取该id调用工厂类便可实现

    3.工厂实例方法实例化:

    1 //工厂类
    2 public class DynamicFactoryBean {  
    3     //非静态方法,需要先创建工厂类的对象,再通过对象调用该方法,获取对象
    4     public UserDao createUserDao(){        
    5         return new UserDaoImpl(); 
    6     }
    7 }
    1 <!-- 创建工厂类的对象 -->
    2 <bean id="factoryBean" class="com.itheima.factory.DynamicFactoryBean"/>
    3 <!-- 通过工厂类的对象,调用createUserDao方法,获取UserDao对象 -->
    4 <bean id="userDao" factory-bean="factoryBean" factory-method="createUserDao"/>

    在Test类里关于Spring的API:

    1.ApplicationContext的继承体系:

      applicationContext:接口类型,代表应用上下文,可以通过其实例获得 Spring 容器中的 Bean 对象

    2.ApplicationContext的实现类:

      1)ClassPathXmlApplicationContext 它是从类的根路径下加载配置文件 推荐使用这种。

      2)FileSystemXmlApplicationContext它是从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置。

      3)AnnotationConfigApplicationContext 当使用注解配置容器对象时,需要使用此类来创建 spring 容器。它用来读取注解。

    3.getbean的使用方法:

    1 //获取id="userService"的对象
    2 UserService us1 = (UserService)ac.getBean("userService");
    3 //获取类型为"UserService"的对象,
    4 //注意,该操作要求,在spring核心容器中只能有一个"UserService"类型的对象
    5 UserService us2 = ac.getBean(UserService.class);
    6 //获取类型为"UserService",id为"userService"的对象,
    7 UserService us3 = ac.getBean("userService",UserService.class);
  • 相关阅读:
    HDU 4358 莫队算法+dfs序+离散化
    HDU 5692 线段树+dfs序
    Codeforces Round #377 (Div. 2) A B C D 水/贪心/贪心/二分
    LVS负载均衡的三种模式和八种算法总结
    hdfs 常用命令
    Linux 系统监控
    CentOS 7 时区设置
    kubernetes 留言版DEMO
    CentOS7 PostgreSQL 主从配置( 三)
    Postgres数据库在Linux中优化
  • 原文地址:https://www.cnblogs.com/j9527/p/12030293.html
Copyright © 2011-2022 走看看