• Spring七天速成:入门必看(一)


    “天生我材必有用,千金散尽还复来!”

    ----------持续更新Spring入门系列知识点-------------

    你的点赞、关注、评论、是我创作的动力!

    -------希望我的文章对你有所帮助--------

    前言:其实学习编程从来没有捷径,只有靠稳扎稳答的夯实基础知识,以及不断的实践与练习去磨练技术以及加深认知和理解。本文仅仅作为初步了解以及运用Spring的参考,如有不当之处,恳请不吝赐教!

      本文以如同我般的初学者的角度,简便的梳理Spring体系结构中的重要知识点以及简单的实例演示!删繁就简!

    目录

    一、初识Spring

    1.1-Spring的基本知识

    1.2、Spring框架的优点

    二、创建简单的Spring应用

    2.1 创建maven项目,导入依赖pom.xml

    2.2 编写一个类

    2.3 applicationContext配置文件

    2.4 编写Test测试类

    三、依赖注入类型

    3.1 setter依赖注入

     3.2 构造方法注入

     四、总结


    一、初识Spring

    1.1-Spring的基本知识

            Spring是基于JavaEE的一个轻量级开源框架,核心理念是IoC(控制反转)和AOP(面向切面编程)。IoC是Spring的基础,它支撑着Spring对Java Bea的管理;AOP是Spring的重要特性,通过预编译和运行期间的动态代理来实现程序的运行,在不违反开闭原则的情况下,对程序进行功能的添加。

    1.2、Spring框架的优点

    1、非侵入式设计

    2、降低耦合,方便开发

    3、支持AOP编程

    4、支持声明事物

    5、方便程序测试

    6、方便集成各种框架

    7、降低JavaEE API的使用难度

    二、创建简单的Spring应用

    2.1 创建maven项目,导入依赖pom.xml

    代码:

    1. "1.0" encoding="UTF-8"?>
    2. "http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. 4.0.0
    6. org.example
    7. spring_demo
    8. 1.0-SNAPSHOT
    9. junit
    10. junit
    11. 4.13
    12. org.springframework
    13. spring-context
    14. 5.0.2.RELEASE
    15. log4j
    16. log4j
    17. 1.2.9
    18. org.springframework
    19. spring-test
    20. 5.0.2.RELEASE
    21. org.projectlombok
    22. lombok
    23. 1.18.12
    24. provided

    2.2 编写一个类

      本文简单的以HelloSpring类来演示说明,代码如下:

    1. package com.itheima;
    2. public class HelloSpring {
    3. private String Name;
    4. public void setName(String Name){
    5. this.Name=Name;
    6. }
    7. public void Show(){
    8. System.out.println(Name+"-Hello Spring!");
    9. }
    10. }

    2.3 applicationContext配置文件

    每个被注入Spring容器中的Bean(类)都需要在配置文件中进行定义Bean,并且直接注入依赖(赋值)

    1、其中property的name为Bean中的成员变量名,value则是具体值。

    1. "1.0" encoding="UTF-8"?>
    2. "http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    5. "HelloSpring" class="com.itheima.HelloSpring">
    6. "Name" value="小辉">

    2.4 编写Test测试类

      测试类里为对于程序的具体实现,需要new 一个applicationContext作为Spring的容器来管理注册的Bean,而不是直接通过常规的new 创造一个实例,这也就是IOC理念,将创建、管理类的权力交给Spring容器!

    1. package com.itheima;
    2. import org.springframework.context.ApplicationContext;
    3. import org.springframework.context.support.ClassPathXmlApplicationContext;
    4. public class TestHelloSpring {
    5. public static void main(String args[]){
    6. ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
    7. HelloSpring helloSpring=(HelloSpring) applicationContext.getBean("HelloSpring");
    8. helloSpring.Show();
    9. }
    10. }

     

    三、依赖注入类型

    3.1 setter依赖注入

    setter依赖注入即在类中通过设定set_XX()、get_XX()方法来定义或者获取成员变量,且在applicationContext中Bean中通过子标签property来进行依赖注入。

    如下代码:

    1. public class HelloSpring {
    2. private String Name;
    3. public void setName(String Name){
    4. this.Name=Name;
    5. }
    6. public String getName()
    7. {
    8. return this.Name;
    9. }
    10. }

    因此,applicationContext文件中:

    1. "HelloSpring" class="com.itheima.HelloSpring">
    2. "Name" value="小辉">

     3.2 构造方法注入

      即通过构造方法对类中的成员变量进行赋值,那么相对应的,Bean中将通过

    Constructor-arg标签进行依赖注入。

    代码如下:

    1. public class HelloSpring {
    2. private String Name;
    3. private Integer id;
    4. public void HelloSpring(String Name,Integer id){
    5. this.Name=Name;
    6. this.id=id;
    7. }
    8. }

    applicationContext配置文件:

    1. "HelloSpring" class="com.itheima.HelloSpring">
    2. "Name" value="小辉">
    3. "id" value="0001">

     四、总结

            本期Spring入门系列文章主要介绍了IoC反转的基本理念,以及Spring容器对于Bean的管理,两种基本依赖注入方式,以及对应的applicationContext中的标签进行赋值,实现了简单入门实例。

            请问你学废了吗?

    感谢爱学习的你看到了最后,点个赞、关注支持一下吧!

  • 相关阅读:
    基于Python班级管理系统毕业设计-附源码171809
    K8s部署单机mysql
    【Flutter】【package】auto_size_text 文字自动适配大小
    HDLC协议的基本概念和帧
    待看12313132
    让你快速理解工厂模式
    [产品体验] GPT4识图功能
    python 函数(提高篇)
    【报告解析】OpenAI Sora视频模型官方报告全解析 | 效果,能力以及基本原理
    架构每日一学 15:想要提升协作效率,必须先统一语义
  • 原文地址:https://blog.csdn.net/m0_55278347/article/details/127911358