Spring5学习笔记

介绍:

1.引入相应jar包

导入:

ps:网上下载教程: https://repo.spring.io/release/org/springframework/spring/

入门案例:

1.打开idea,创建普通Java工程

2.导入jar包

3.创建普通类

public class User {
public void say(){
System.out.println("xddfjofjofij");
}
}

4.创建spring配置文件(bean.xml),在配置文件中配置创建的对象

<?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">
<!--配置User对象创建-->
<bean id="user" class="User"></bean>
</beans>

5.测试代码编写

public class TestSpring {
@Test
public void testAdd(){
ApplicationContext context = new ClassPathXmlApplicationContext("Bean1.xml");
User user = context.getBean("user",User.class);
System.out.println(user);
user.say();
} }

注意:因为xml文件配置时不小心多出来一个空格,导致报错

分析原因得知:

修改完成成功运行:

IOC容器:

概念:

底层原理:

IOC(接口):

ClassPathXmlApplicationContext:src目录下的文件
FileSystemXmlApplicationContext:具体盘符下的文件地址

IOC操作bean管理:

概念:

IOC操作bean管理(基于xml方式)

xml注入其他类型属性:

2.注入属性-外部bean

a.原始方式: 创建UserDao对象,调用相应方法。

b.

xml注入集合属性:

测试类:

@Test
public void testCollection1() {
ApplicationContext context =
new ClassPathXmlApplicationContext("bean1.xml");
Stu stu = context.getBean("stu", Stu.class);
stu.test();
}

stu类中的测试方法:

public void test() {
System.out.println(Arrays.toString(courses));//注意这里数组的调用方法
System.out.println(list);
System.out.println(maps);
System.out.println(sets);
System.out.println(courseList);
}

测试方法:

@Test
public void testCollection2() {
ApplicationContext context =
new ClassPathXmlApplicationContext("bean2.xml");
Book book1 = context.getBean("book", Book.class);
Book book2 = context.getBean("book", Book.class);
book.test(); }

book类中的test方法:

public void test() {
System.out.println(list);
}
}

bean作用域:

1.在spring里面。设置创建bean实例是单实例还是多实例

bean生命周期:

emp类:

public class Emp {
private Dept dept;
public void setDept(Dept dept) {
this.dept = dept;
} @Override
public String toString() {
return "Emp{" +
"dept=" + dept +
'}';
} public void test() {
System.out.println(dept);
}
}

测试类:

  @Test
public void test4() {
ApplicationContext context =
new ClassPathXmlApplicationContext("bean5.xml");
Emp emp = context.getBean("emp", Emp.class);
System.out.println(emp);
}

import org.springframework.stereotype.Repository;

@Repository()
public class UserDaoImpl implements UserDao {
@Override
public void add() {
System.out.println("dao add.....");
}
}

@Repository(value = "userDaoImpl1")
public class UserDaoImpl implements UserDao {
@Override
public void add() {
System.out.println("dao add.....");
}
}

以下原理需要加强!

webflux暂时未学,放在springmvc、springboot之后

Spring5框架学习笔记的更多相关文章

  1. Spring5框架学习笔记(详细)

    目录 01 Spring框架概述 02 IOC容器 IOC概念和原理 IOC BeanFactory接口 IOC操作 Bean管理(概念) IOC操作 Bean管理(基于xml方式) IOC操作 Be ...

  2. phalcon(费尔康)框架学习笔记

    phalcon(费尔康)框架学习笔记 http://www.qixing318.com/article/phalcon-framework-to-study-notes.html 目录结构   pha ...

  3. Yii框架学习笔记(二)将html前端模板整合到框架中

    选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...

  4. JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue

    前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...

  5. JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序

    前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...

  6. JavaSE中Map框架学习笔记

    前言:最近几天都在生病,退烧之后身体虚弱.头疼.在床上躺了几天,什么事情都干不了.接下来这段时间,要好好加快进度才好. 前面用了三篇文章的篇幅学习了Collection框架的相关内容,而Map框架相对 ...

  7. JavaSE中线程与并行API框架学习笔记1——线程是什么?

    前言:虽然工作了三年,但是几乎没有使用到多线程之类的内容.这其实是工作与学习的矛盾.我们在公司上班,很多时候都只是在处理业务代码,很少接触底层技术. 可是你不可能一辈子都写业务代码,而且跳槽之后新单位 ...

  8. JavaSE中线程与并行API框架学习笔记——线程为什么会不安全?

    前言:休整一个多月之后,终于开始投简历了.这段时间休息了一阵子,又病了几天,真正用来复习准备的时间其实并不多.说实话,心里不是非常有底气. 这可能是学生时代遗留的思维惯性--总想着做好万全准备才去做事 ...

  9. scrapy爬虫框架学习笔记(一)

    scrapy爬虫框架学习笔记(一) 1.安装scrapy pip install scrapy 2.新建工程: (1)打开命令行模式 (2)进入要新建工程的目录 (3)运行命令: scrapy sta ...

随机推荐

  1. Vulhub-DC-4靶场

    Vulhub-DC-4靶场 前言 这套靶场的亮点在于对hydra的运用比较多,在遇到大容量字典的时候,BurpSuite可能会因为设置的运行内存的限制,导致字典需要花很长时间导入进去,虽然通过修改配置 ...

  2. Android工程师所必经的三个阶段,你到哪个阶段了?

    前言 最近一直在思考,作为一名软件开发工程师,到底应该如何实现自我成长,是否有捷径而言?其实断断续续有过很多思考,也有和各种年龄段的同学们做过不少交流,结合自身的经历,有一些感悟和思考.本文可能可以适 ...

  3. Window2016 安装Docker

    测试环境 Windows2016 DataCenter 安装步骤 1.开始运行"PowerShell" 2.指定Tls协议为1.2.(建议都先执行这一条命令,官方文档没有这一步,实 ...

  4. 通过Appium日志,分析其运行原理

    1.启动appium: appium的rest http 接口开始监听 4723 端口: 2.运行 python 脚本: appium接收到一个post请求 /wd/hub/session,并携带了 ...

  5. HTTP缓存——协商缓存(缓存验证)

    协商缓存 所谓"协商",可以理解为:客户端和服务端双方商量着来. 客户端检查资源超过有效期.强缓存命中失败的情况下,则发出请求"询问"服务器是否资源真的过期了, ...

  6. 记面试的一道JS题

    给一个数组arr=[1,2,3,4,5],索引第二位插入'z',设计一个函数change,调用change(arr, 2, 'z')返回一个新数组[1,2,'z',3,4,5] 我想了两种办法: 第一 ...

  7. S3C2440—7.存储控制器访问外设

    文章目录 一.内存接口的概念 二.存储控制器(内存控制器) 2.1 什么是存储控制器? 2.2 S3C2440存储控制器介绍 2.3 存储控制器如何处理不同位宽的外设 2.4 怎么确定芯片的访问地址? ...

  8. Linux-常见报错注释

    1. command not found 命令没有找到 2. No such file or directory         没有这个文件或目录 3. Permission denied     ...

  9. js清空input file的值

    原文:js清空input file的值 在做选择本地图片上传的功能时遇到一个问题,第一次点file按钮选择图片完成会触发onchange事件,获取文件后动态在界面上创建img标签展示,但把创建的img ...

  10. FLV简介

    FLV (Flash Video) 是由 Adobe 公司推出的一种封装格式,主要用于流媒体系统. FLV 封装的媒体文件具有体积轻巧.封装播放简单等特点,很适合网络应用. 目前各浏览器普遍使用 Fl ...