以前公司一直使用的是spring3.0,最近一段时间开始用了4.0,官网上都已经有了5.0,但是很多知识点已经忘了差不多了,趁现在项目不忙写写随笔,一来回顾自己的知识点,二来如果能帮助比我还小白的小白,那最好不过了,不定期更新,温故而知新。

Spring官网(https://spring.io

Spring是什么?

spring是为了简化企业级应用开发而生的开源框架(主要是简化了过去EJB2的开发),它是轻量级的(非入侵式)和一站式(整合能力强)框架,也是一个IOC(DI)(依赖注入)和AOP(面向切面编程)的容器(包含管理应用对象的生命周期)框架。

Spring带给java第二春,所以有人说Spring就等同于JavaEE,虽然不太合适,但是也有一定的道理,下面的图是Spring的主要模块:

(具体详细的介绍参考官网,这里就不在过多介绍了,直接开始写第一个HelloWorld)

首先建立一个项目(基于IntelliJ IDEA),引用相对应的jar,如图所示:

建立Studet.java:

package com.lql.spring01;

/**
* @author: lql
* @date: 2019.09.24
* Description:
*/
public class Student {
private String name;
private Integer age;
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public void Hello() { System.out.println("Hello :" + this.getName());
}
}

  相对传统的做法为:先实例化Student类,再通过对象赋值后调用Hello();

-----------------------------------------------------------------------------------------------------------------------------------------------

Spring的HelloWorld如下:

 首先在工程里创建一个spring的配置文件“applicationContext.xml”(名称可以随意命名,官网建议此命名applicationContext),在applicationContext.xml里面配置bean,整体效果如下:

相对应的注释和注意事项已经写在截图里,接下来就是将bean交给Spring了;代码如下(不用记)

    public static void main(String[] args) {
// Student student = new Student();
// student.setName("lql");
// student.Hello(); //创建IOC容器
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
//获取bean
Student student = app.getBean("student", Student.class);
//调用方法
student.Hello();
}

打印如下,注释在截图中:

至此,一个简单的HelloWorld的程序写完了,接下来我们讲讲IOC&DI,Spring中的第一个核心。

(小白程序猿,有错欢迎纠错)

虽然有些事情,从一开始就意味着结束,从一开始就知道没有结果,那是不是就不让它开始呢?如果害怕失去就放弃拥有的权利,那么人生好像也就失去了意义

Spring4学习回顾之路01—HelloWorld的更多相关文章

  1. Spring4学习回顾之路03—XML配置Bean ,依赖注入的方式

    配置Bean的形式可以基于XML文件的方式,也可以基于注解的方式,而Bean的配置方式可以通过全类名(反射),通过工厂方式和FactoryBean. XML形式 <?xml version=&q ...

  2. Spring4学习回顾之路12-事务

    事务:事务就是一系列的动作,它们被当做一个单独的工作单元,这些动作要么全部完成,要么全部不起作用:事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性.事务的四个关键属性(ACI ...

  3. Spring4学习回顾之路11-AOP

    Srping的核心除了之前讲到的IOC/DI之外,还有一个AOP(Aspect Oriented Programming:面向切面编程):通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术 ...

  4. Spring4学习回顾之路10-Spring4.x新特性:泛型依赖注入

    泛型依赖注入:Spring 4.x中可以为子类注入子类对应的泛型类型的成员变量的引用. 话语太过抽象,直接看代码案例,依次建立如下代码: User.java package com.lql.sprin ...

  5. Spring4学习回顾之路09-基于注解的方式配置bean

    一:基于注解配置Bean 首先介绍下组件扫描(component scanning): Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 包括: -@Component ...

  6. Spring4学习回顾之路08- FactoryBean配置Bean

    建立Student.java package com.lql.srping04; /** * @author: lql * @date: 2019.10.28 * Description: */ pu ...

  7. Spring4学习回顾之路07- 通过工厂方法配置Bean

    一:通过静态工厂配置Bean 建立Student.java package com.lql.srping04; /** * @author: lql * @date: 2019.10.28 * Des ...

  8. Spring4学习回顾之路06- IOC容器中Bean的生命周期方法

    SpringIOC容器可以管理Bean的生命周期,Spring允许在Bean生命周期的特定点执行特定的任务! Spring IOC容器对Bean的生命周期进行管理的过程: -通过构造器或者工厂方法创建 ...

  9. Spring4学习回顾之路05—自动装配,Bean的继承,依赖和作用域

    自动装配 xml配置里的Bean的自动装配,Spring IOC容器可以自动装配Bean,仅仅需要做的是在<bean>标签里的autowire属性里指定自动装配的模式. ①byType(根 ...

随机推荐

  1. Python数据分析:Numpy学习笔记

    Numpy学习笔记 ndarray多维数组 创建 import numpy as np np.array([1,2,3,4]) np.array([1,2,3,4,],[5,6,7,8]) np.ze ...

  2. How to do Deep Learning on Graphs with Graph Convolutional Networks

    翻译: How to do Deep Learning on Graphs with Graph Convolutional Networks 什么是图卷积网络 图卷积网络是一个在图上进行操作的神经网 ...

  3. Linux设备驱动程序 之 内核符号表

    insmod使用公共内核符号表来解析模块中未定义的符号.功能内核符号表中包含了所有全局内核项(函数和变量)的地址,这是实现模块化驱动程序所必须的.当模块装载到内核后,它所导出的任何符号都会变成内核符号 ...

  4. LeetCode 岛屿的最大面积(探索字节跳动)

    题目描述 给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合.你可以假设二维矩阵的四个边缘都被水包围着. 找到给定的 ...

  5. Oracle中根据列名找到所属的表

    oracle中如何根据一个字段名查找出所属的表名? 用如下语句, select * from user_tab_columns where column_name='列名', 例子:select * ...

  6. mybatis sql不等于

    转载地址:    https://blog.csdn.net/weixin_40797576/article/details/78796028 select * from test where id& ...

  7. springboot 整合logback(有全套的日志配置文件)

    logback介绍:基于Log4j基础上大量改良,不能单独使用,推荐配合日志框架SLF4J来使用,可以和springboot很好的整合,也是springboot默认推荐的. 1.在resources ...

  8. 【批处理】ren命令_批量重命名文件

    [ren命令] 说明:ren是“rename(重命名)”的简写: 命令:REN [Drive:][path] <old filename> <new filename> 解释: ...

  9. 快速解决设置Android 23.0以上版本对SD卡的读写权限无效的问题

    快速解决设置Android 23.0以上版本对SD卡的读写权限无效的问题 转 https://www.jb51.net/article/144939.htm 今天小编就为大家分享一篇快速解决设置And ...

  10. Qt编写自定义控件19-图片背景时钟

    前言 图片背景时钟控件,是全套控件(目前共145个)中唯一的几个贴图的控件,这个背景要是不贴图,会画到猝死,必须用美工做好的图贴图作为背景,此控件以前学C#的时候写过,后面在写Qt控件的过程中把他移植 ...