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 {@Testpublic 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注入。

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

  1. Spring Boot 网易云课堂

    地址:<从零开始学Spring Boot>: study.163.com/course/intr- 提供:答疑.笔记.讨论.源代码下载.PPT下载.学习课时记录 课程更新频率:每两周一更新 ...

  2. 网易云课堂解析_网易云课堂课程下载教程

    网易云课堂不能下载视频,缓存打不开? 记: 网易云课堂.中国大学mooc这些学习平台确实大大方便了我们这些工作党学习,之前一直用的是手机客户端看视频,但是由于换手机啊,清理垃圾啊,手机储存容量各种原因 ...

  3. [干货教程]仿网易云课堂微信小程序开发实战经验

    本篇文章想跟大家分享下:我们公司"湖北诚万兴科技"最近刚帮客户定制开发.目前已上线的"哎咆课堂"微信小程序的开发经验分享.首先大概介绍下这个小程序所涉及到的主要 ...

  4. 2018最新网易云课堂 web白帽子培训教程 价值2000元

    课程介绍: 网易白帽子教程就是网易云课堂微专业白帽子黑ke训练营教程,来自以品质著称的网易云课堂的<Web安全工程师微专业>,由7位网易安全大牛与多位云课堂教育专家匠心打造,是一套从入门到 ...

  5. Python爬虫入门教程 21-100 网易云课堂课程数据抓取

    写在前面 今天咱们抓取一下网易云课堂的课程数据,这个网站的数据量并不是很大,我们只需要使用requests就可以快速的抓取到这部分数据了. 你第一步要做的是打开全部课程的地址,找出爬虫规律, 地址如下 ...

  6. python数据抓取课程_Python爬虫入门教程 21-100 网易云课堂课程数据抓取

    写在前面 今天咱们抓取一下网易云课堂的课程数据,这个网站的数据量并不是很大,我们只需要使用requests就可以快速的抓取到这部分数据了. 你第一步要做的是打开全部课程的地址,找出爬虫规律, 地址如下 ...

  7. 网易5天python编程课_网易云课堂上自学编程?

    (一) 不是大佬.题主问的是有没有必要按照网易云课堂上的大一到大四的全部课程学习一遍? 强答一波:没有必要. 题主这么提问,无非就是想减少自己的试错成本,在这里分享一些我这段时间以来的学习经历.每个人 ...

  8. 网易云课堂微专业--Java高级开发工程师

    获取方式:公众号:文若课堂 ​ 5.微专业-java |    |──大纲.jpg          910.32KB |    |──阶段1:高性能编程专题 |    |    |──1.1.1 J ...

  9. Java高级分布式系统开发技术 网易云课堂

    Java高级分布式系统开发技术 网易云课堂 授课大纲 第一章 分布式应用协调 1.1 互联网系统架构演进之路 1.1.1 集中式单体应用 1.1.2 系统拆分RPC阶段 1.1.3 微服务治理阶段 1 ...

最新文章

  1. 电动汽车换电的优缺点分析
  2. Centos7 安装 telnet 服务
  3. 【每日DP】day 5、P1095 守望者的逃离(好像悟到了DP的真谛)难度⭐⭐★
  4. docker 安装nginx_Docker18安装Nginx和Apache实验
  5. 高并发缓存处理之——缓存穿透的几种形式及解决方案
  6. Jetty在win10上的配置,IDEA中配置Jetty,Maven中配置Jetty插件,Eclipse中配置Jetty插件及其使用,通过java代码内嵌Jetty Server
  7. JQUERY拼接数组
  8. SpringMVC的使用与requestMapper的使用
  9. 算法设计与分析——贪心算法——最优装载问题
  10. java sendmessage函数_vc中SendMessage自定义消息函数用法实例
  11. 妲己机器人怎么升级固件_OnRobot新增爱普生川崎机器人套件、HEX固件升级
  12. TeeChart.NET 4.2021.11.2 Crack
  13. 神州微型计算机,神舟笔记本序列号查维修-怎样根据神舟笔记本电脑的序列号查询...
  14. 算法高级(21)-如何通过IP地址进行定位?
  15. android数据库降级_Android之sqlite数据库版本升级和降级的处理(onUpgrade和onDowngrade)...
  16. 【云和恩墨大讲堂】黄宸宁 - 一次特殊的 ORA-04030 故障处理
  17. ELK Stack在多项目情况下filebeat与logstash的多文件配置
  18. 建议收藏:GitHub 上值得收藏的100个精选前端项目!
  19. 将正常表格数据转换为横版数据(js实现)
  20. jsp 实验室管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

热门文章

  1. 轨迹误差评估指标[APE/RPE]和EVO[TUM/KITTI]
  2. 7-96 获奖的运气
  3. 想玩明白Hive哪有那么容易,十分钟你都看不完
  4. ognlognl表达式 研究
  5. 下面整理了几种让网页变灰色的CSS代码,供各位站长参考!
  6. 股票python量化交易016-计算最大回撤
  7. 使用四种框架分别实现百万websocket常连接的服务器{转}
  8. 【CSAPP+电流+梯度下降法】九阳神功-速览1
  9. Python3 模拟手机登录熊猫直播(panda.tv)
  10. 四种常见的ps怎么模糊背景的方法