Day 9 : Spring框架网易云课堂教程1~22

Spring视频教程

JavaGuide中对Spring一些资料的整理

准备跟着网易云课堂的Spring教程先过一遍Spring框架的基础知识。

但是感觉视频有点过时,所以不用跟着视频教程把所有代码和配置文件都敲出来去实现,有点费时间,直接看懂一些关键概念就好,或者直接去看尚硅谷的Spring教学,更新一点。


综合知识点:

  • Spring框架特性:轻量级、开源、一站式
  • aop:面向切面编程,即扩展功能不是修改源代码实现。
  • ioc :控制反转,不通过new来创建对象,而是交给Spring配置。
  • 一站式的体现:Spring在javaee的三层结构中都有对应的不同解决技术
    1)web层(表示层):SpringMVC
    2)service层(业务层):Spring的ioc
    3)dao层(数据访问层):Spring的jdbcTemplet

ioc操作知识点

  1. ioc 操作分为1)配置文件方式。2)注解方式。
  2. ioc 底层原理使用技术包含四个部分
    1)xml配置文件
    2)dom4j解决xml
    3)工厂设计模式,与Effective Java中的静态工厂方法是同一个概念。
    4)反射
  3. ioc是为了解决不同类之间(尤其是servlet服务器调用User类方法)的耦合度,一种高内聚、低耦合的开发思想。
  4. ioc底层原理的过程

IOC 入门案例

第一步 导入核心jar包
核心的jar包,包括Beans、Core、Context和SpEL(expression)。
视频中是手动导入的方法,如果使用IDEA和maven来管理,就可以更加方便的下载。
首先在创建新项目的时候设置一下选用maven模版:

之后就会创建出带有pom.xml配置文件的项目,我们向这个pom.xml添加jar包的依赖,使用快捷键command+n(windows用户Alt+Insert),搜索对应的jar包(比如spring-beans, spring-core, spring-context, spring-expression),再按下右下角弹出的自动导入即可,这里可能需要使用vpn或者修改镜像来下载:
在这里插入图片描述
下载完成之后,在右边就可以查看导入的jar包:
在这里插入图片描述

第二步 创建包和类,在类里面创建方法

package cn.itcast.ioc;

public class User {

    public void add() {
        System.out.println("add......");
    }

    public static void main(String[] args) {
        //原始做法
        User user = new User();
        user.add();
    }
}

第三步 创建spring配置文件,配置创建类
(1)spring配置文件的名称和位置不是固定的,视频中建议放在src下,名称为bean1.xml,但是因为我们使用maven模式创建的项目,要把bean1.xml和javaclass放在同一个目录下:

<?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">


    <!-- ioc入门 -->
    <bean id="user" class="cn.itcast.ioc.User"></bean>
</beans>

代码中beans标签里面的一长串视频里是按照文档找的,我是直接上网复制的(感觉有点麻烦,应该会有更好的解决办法)

第四步 写代码测试对象
这里再创建一个测试类来测试一下,为了简化流程,视频中的教程用@Test下载导入了另外一个jar包来可以直接测试类(不需要写main代码?):

package cn.itcast.ioc;

import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestIOC {

    @Test
    public void testUser() {
        //1加载spring配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");

        //2 得到配置创建的对象
        User user = (User) context.getBean("user");
        System.out.println(user);
        user.add();
    }
}

测试的时候出现了一个问题,说找不到xml文件,应该也和maven管理包有关,看了这个教程的方式一就解决了。


小知识点

  • 静态工厂:静态方法,返回类的对象。

  • 实例工厂:非静态方法,返回类的对象。

  • Spring的bean管理有三种实例化方式:1)无参数构造;2)静态工厂构造;3)实例工厂构造;

  • bean标签中的scope属性有5个:前两个比较重要,分别代表在多次创建时是单个实例还是多个不同的实例。

  • 属性注入,对象类型属性注入以及复杂注入看视频11-15,讲的很详细,偷懒不总结了。

  • 属性注入又称为依赖注入(DI),依赖注入需要IOC来创建对象之后才能完成。


Spring整合web项目

原理:其内部实现以及封装好了,只需要了解一下就行啦。


Spring管理beans(注解)

注解就是代码里面的特殊标记,以"@注解名称(属性名称=属性值)"的方式出现在方法,类,属性前面,可以用来完成一些功能。

注解功能:(使用之前需要做jar包导入和配置文件的准备)

  • 注解创建对象


    还可以使用@Scope(value = “prototype”)来选择创建多实例还是单实例对象。

  • 注解注入属性
    以对象属性注入为例,先用两个注解创建对象,然后再在service对象中创建注入对象的属性,在属性前用@Autowired注解即可根据类名称完成自动注入,不需要写set方法。

    或者也可以用更加常用的@Resource(name=“xxx”)来指定对应value的创建类来注入,类似于普通注入里的ref注入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值