(一)Java Spring 快速入门-环境搭建

一、Spring简介

  • Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和
    AOP(Aspect Oriented Programming:面向切面编程)为内核
  • 包括展现层 SpringMVC ,持久层 Spring JDBCTemplate ,业务层事务管理
  • 优点
    在这里插入图片描述

二、Spring入门实例(开发工具IDEA)

(1)Spring开发基本步骤:(先创建一个Maven)

  • ① 导入 Spring 开发的基本包坐标
  • ② 编写 Dao 接口和实现类
  • ③ 创建 Spring 核心配置文件
  • ④ 在 Spring 配置文件中配置 UserDaoImpl
  • ⑤ 使用 Spring 的 API 获得 Bean 实例
1.导入 Spring 开发的基本包坐标,需要在pom.xml配置在这里插入图片描述
2.编写 Dao 接口和实现类
package com.dao;
public interface UserDao {
    public void save();
}

package com.daoimpl;
import com.dao.UserDao;
public class UserDaoImpl implements UserDao{
    public void save() {
        System.out.println("save running -------");
    }
}

3.创建 Spring 核心配置文件,在resource文件下创建并命名为ApplicationContext.xml在这里插入图片描述
4.在 Spring 配置文件中配置 UserDaoImpl
  • id:唯一性标识,不可重复,习惯命名为接口名
  • class:实现类的全限定类名
<?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">
     <!--id:唯一性标识 class:全限定类名-->
    <bean id="userDao" class="com.daoimpl.UserDaoImpl"></bean>
</beans>
5.使用 Spring 的 API 获得 Bean 实例(使用ApplicationContext接口 获得 Bean 实例)
  • app.getBean(“userDao”),userDao就是ApplicationContext.xml文件中定义的id
  • ClassPathXmlApplicationContext(“ApplicationContext.xml”);ApplicationContext.xml就是Spring核心配置名
package com.daoimpltest;

import com.dao.UserDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class userDaoImplTest {
    public static void main(String[] args) {
        ApplicationContext app = new ClassPathXmlApplicationContext("ApplicationContext.xml");
        UserDao userDao = (UserDao) app.getBean("userDao");
        userDao.save();

    }
}
6.运行结果

在这里插入图片描述

(2)总结:运用Spring不需要手动创建userDao对象,只需要通过接口加载配置文件ApplicationContext.xml,再获取对象即可,做到了解耦合!

(3)Bean标签范围配置——scope:指对象的作用范围,取值如下

  • singleton:默认的,单例的,多个对象只对应一个地址空间
  • prototype:多例的,多个对象对应不同的地址空间
测试如下
  • scope=“singleton”
<?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">
     <!--id:唯一性标识 class:全限定类名-->
    <bean id="userDao" class="com.daoimpl.UserDaoImpl" scope="singleton"></bean>
</beans>
package com.springtest;

import com.dao.UserDao;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringTest {
  @Test
    public void testScope(){
      ApplicationContext app = new ClassPathXmlApplicationContext("ApplicationContext.xml");
      UserDao userDao = (UserDao) app.getBean("userDao");
      UserDao userDao2 = (UserDao) app.getBean("userDao");
      System.out.println(userDao);
      System.out.println(userDao2);


  }
}

在这里插入图片描述

  • scope=“prototype”

在这里插入图片描述

经过测试发现:
  • scope为singleton时不同对象对应同一个地址
  • scope为prototype时不同对象对应不同地址
  • 补充:scope为singleton时 bean对象创建是在加载ApplicationContext.xml时,
  • 补充:scope为prototype时 bean对象创建是在加载执行getBean()方法时,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值