A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 逆风TO 黑马粉丝团   /  2020-1-6 10:04  /  8000 人查看  /  167 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 逆风TO 于 2020-1-6 10:19 编辑

一、Spring概述
1.1 框架概述

框架是一个封装了很多功能和模块的程序半成品。可以理解是一个由很多工具类组合成的一个工具包。
1.2 Spring是什么
Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架。是Java开发的灵魂框架。
Spring有两大内核:
IOC:(Inverse Of Control:控制反转)
AOP:(Aspect Oriented Programming:面向切面编程)
1.3 Spring功能
IOC:控制反转。就是我们不在创建对象,把对象的创建权,交给spring,由Spring负责给我们创建对象。
DI: 依赖注入。就是给对象的成员变量赋值。
AOP:面向切面编程,底层就是动态代理。
事务: Spring提供了声明式事务,也就是说,我们可以通过配置的方式来添加事务。
二、Spring快速入门
2.1 Spring程序开发步骤

1 导入 Spring 开发的基本包坐标
2 编写 Dao 接口和实现类
3 创建 Spring 核心配置文件
4 在 Spring 配置文件中配置 UserDaoImpl
5 使用 Spring 的 API 获得 Bean 实例
[Java] 纯文本查看 复制代码
<!-- pom.xml中根据自己的版本配置 -->
<properties>
        <spring.version>5.0.5.RELEASE</spring.version>
</properties>
<!--导入spring的context坐标,context依赖core、beans、expression-->
<dependencies> 
    <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>
</dependencies>

2.3 编写Dao接口和实现类
[Java] 纯文本查看 复制代码
public interface UserDao {  
    public void find();
}

public class UserDaoImpl implements UserDao {  
    @Override  
    public void find() {
        System.out.println("UserDao find method running....");
        }
}

2.4 创建Spring核心配置文件

  • 在类路径下(resources)创建applicationContext.xml配置文件
    [Java] 纯文本查看 复制代码
    <?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="
                        [url=http://www.springframework.org/schema/beans]http://www.springframework.org/schema/beans[/url]                                                                           [url=http://www.springframework.org/schema/beans/spring-beans.xsd]http://www.springframework.org/schema/beans/spring-beans.xsd[/url]">
    

2.5 在Spring配置文件中配置UserDaoImpl
[Java] 纯文本查看 复制代码
<beans xmlns="http://www.springframework.org/schema/beans"                                                                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="
                    [url=http://www.springframework.org/schema/beans]http://www.springframework.org/schema/beans[/url]                                                                           [url=http://www.springframework.org/schema/beans/spring-beans.xsd]http://www.springframework.org/schema/beans/spring-beans.xsd[/url]">
    
   <!-- 配置UserDaoImpl -->
   <bean id="userDao" class="www.baidu.dao.impl.UserDaoImpl"></bean>
    
</beans>

2.6 使用Spring的API获得Bean实例
[AppleScript] 纯文本查看 复制代码
@Test 
public void test1(){
    //加载spring配置文件。获取spring核心容器
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    //获取spring容器中的userDao对象
    UserDao userDao = (UserDao) ac.getBean("userDao");
    //调用方法
    userDao.find();
}

三、Spring配置文件

3.1 Bean标签基本配置

[AppleScript] 纯文本查看 复制代码
<bean id="userDao" class="www.baidu.dao.impl.UserDaoImpl"></bean>

id:Bean实例在Spring容器中的唯一标识
class:Bean的全限定名称


3.2 Bean标签范围配置

[Java] 纯文本查看 复制代码
<bean id="userDao" class="www.baidu.dao.impl.UserDaoImpl" scope="singleton" ></bean>

scope:指对象的作用范围,取值如下:


3.3 Bean生命周期配置


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

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

3.4 Bean实例化三种方式

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

默认调用无参构造方法创建对象,如果bean中没有默认无参构造函数,将会创建失败

[Java] 纯文本查看 复制代码
<bean id="userDao" class="www.baidu.dao.impl.UserDaoImpl"/>

  • 2 工厂静态方法实例化
    [AppleScript] 纯文本查看 复制代码
    //工厂类
    public class StaticFactoryBean {
        //静态方法,通过该方法获取对象
        public static UserDao createUserDao(){    
                return new UserDaoImpl();
        }
    }
    

[Java] 纯文本查看 复制代码
<bean id="userDao" class="www.baidu.factory.StaticFactoryBean" factory-method="createUserDao" />


  • 3 工厂实例方法实例化
[Java] 纯文本查看 复制代码
//工厂类
public class DynamicFactoryBean {  
    //非静态方法,需要先创建工厂类的对象,再通过对象调用该方法,获取对象
        public UserDao createUserDao(){        
                return new UserDaoImpl(); 
        }
}


[Java] 纯文本查看 复制代码
<!-- 创建工厂类的对象 -->
<bean id="factoryBean" class="www.baidu.factory.DynamicFactoryBean"/>
<!-- 通过工厂类的对象,调用createUserDao方法,获取UserDao对象 -->
<bean id="userDao" factory-bean="factoryBean" factory-method="createUserDao"/>


167 个回复

正序浏览
我爱我1022 来自手机 中级黑马 2020-3-5 16:57:28
165#
加油
回复 使用道具 举报
素问 发表于 2020-1-11 14:12
努力奋斗,加油,学到很多

加油哦~
回复 使用道具 举报
雨落轻舟 发表于 2020-1-11 11:14
总结的不错,继续努力

加油哦~
回复 使用道具 举报

加油哦~
回复 使用道具 举报
回复 使用道具 举报
殷凯老师 发表于 2020-1-9 10:41
2020扬帆起航。。。

加油哦~
回复 使用道具 举报
回复 使用道具 举报

加油哦~
回复 使用道具 举报
回复 使用道具 举报
零度☆黎明 发表于 2020-1-10 12:35
感谢分享.................... ..................

加油哦~
回复 使用道具 举报

加油哦~
回复 使用道具 举报
殷凯老师 发表于 2020-1-9 10:41
2020扬帆起航。。。

加油哦~
回复 使用道具 举报
回复 使用道具 举报
爱笑的姑娘 发表于 2020-1-10 11:00
6666666666666666666666666666666

加油哦~
回复 使用道具 举报
回复 使用道具 举报

加油哦~
回复 使用道具 举报
殷凯老师 发表于 2020-1-9 10:41
2020扬帆起航。。。

加油哦~
回复 使用道具 举报

加油哦~
回复 使用道具 举报
素问 发表于 2020-1-11 14:12
努力奋斗,加油,学到很多

加油哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马