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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 逆风TO 黑马粉丝团   /  2020-1-6 10:04  /  7229 人查看  /  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 个回复

倒序浏览
相信自己,加油!
回复 使用道具 举报
感谢楼主的分享   万分感谢
回复 使用道具 举报
相信自己,加油!
回复 使用道具 举报
回复 使用道具 举报
666666666666666666666666666666666666666666666
回复 使用道具 举报
666666666666666666666666666666
回复 使用道具 举报
6666666666666666666666
回复 使用道具 举报
优秀。。。。。。
回复 使用道具 举报
学习到很多
回复 使用道具 举报
棒棒的!加油
回复 使用道具 举报
学习到很多
回复 使用道具 举报
学习到很多
回复 使用道具 举报
2020扬帆起航。。。
回复 使用道具 举报
相信自己,加油!
回复 使用道具 举报
相信自己,加油!
回复 使用道具 举报
孙丽 来自手机 中级黑马 2020-1-6 18:29:31
17#
6666666666
回复 使用道具 举报
666666666666666666666
回复 使用道具 举报
学计算机哪家强,就来西安黑马程序员
回复 使用道具 举报
学计算机哪家强,就来西安黑马程序员
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马