zoukankan      html  css  js  c++  java
  • 两个世界

    初次接触编程的时候,我用C++写了一个程序,向控制台输出Hello World。一时之间兴奋不已,觉得好生神奇。于是,编程的世界打开了,再也关不住。现在,让我们也以这样一个Hello World为引,开始我们的Spring之旅。

    首先,我们需要新建Hello World项目:

    1. 打开IntelliJ IDEA,在欢迎界面上点击Create New Project,打开New Project对话框。

    2. 选择左边面板Maven那栏,并于右边面板选好JDK

    3. 点击Next按钮,设置Name为hello-world

    4. 展开Artifact Coordinates,设置GroupId为com.learning

    5. 点击Finish按钮,完成创建。

    注意:新建项目之后可从菜单栏的View > Tool Windows > Project打开Project面板,查看新建的项目。 

    现在,新建的项目空空如也,没有包含任何包。为此,请展开Project面板的hello-world > src > main > java,并于java目录新建com.learning包。随后修改pom文件,告诉Maven构建我们的项目具体需要哪些依赖:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
     3          http://maven.apache.org/POM/4.0.0
     4          http://maven.apache.org/xsd/maven-4.0.0.xsd">
     5 
     6     <modelVersion>4.0.0</modelVersion>
     7     <groupId>com.learning</groupId>
     8     <artifactId>hello-world</artifactId>
     9     <version>1.0-SNAPSHOT</version>
    10 
    11     <properties>
    12         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    13         <maven.compiler.source>11</maven.compiler.source>
    14         <maven.compiler.target>11</maven.compiler.target>
    15     </properties>
    16 
    17     <dependencies>
    18         <dependency>
    19             <groupId>org.springframework</groupId>
    20             <artifactId>spring-core</artifactId>
    21             <version>5.2.2.RELEASE</version>
    22         </dependency>
    23         <dependency>
    24             <groupId>org.springframework</groupId>
    25             <artifactId>spring-beans</artifactId>
    26             <version>5.2.2.RELEASE</version>
    27         </dependency>
    28         <dependency>
    29             <groupId>org.springframework</groupId>
    30             <artifactId>spring-context</artifactId>
    31             <version>5.2.2.RELEASE</version>
    32         </dependency>
    33     </dependencies>
    34 </project>

    改完pom文件,IntelliJ IDEA右下角会弹出一块小面板。在小面板上点击Import Changes,等待一段时间即可完成项目依赖的解析和下载。除此之外,也可从菜单栏的View > Tool Windows > Maven打开Maven面板,点击Reimport All Maven Projects按钮完成项目依赖的解析和下载。

    至此,项目的新建工作已经完成,可以开始写代码了。我们的目标是写一个程序,向控制台输出Hello World。于是,我们需要有个人,这个人能够说话。为此,我们新建一个Person接口:

    1 package com.learning;
    2 
    3 public interface Person {
    4     void speak(String word);
    5 }

    随后新建PersonImpl类实现Person接口:

    1 package com.learning;
    2 
    3 public class PersonImpl implements Person {
    4     @Override
    5     public void speak(String word) {
    6         System.out.println(word);
    7     }
    8 }

    现在,类已经有了,该创建她的实例,调用实例的方法输出Hello World了。这里,有两种方式能够创建Person类的实例。一种是传统的,一种是Spring的。

    按照传统的方式,我们需要自己创建类的实例,然后调用实例的方法说出Hello World。基于这些,我们新建一个Main类,实现如下:

    1 package com.learning;
    2 
    3 public class Main {
    4     public static void main(String[] args) {
    5         var person = new PersonImpl();
    6         person.speak("Hello World");
    7     }
    8 }

    写完之后可以运行代码了。为此,请:

    1. 点击右上角的Add Configuration按钮,打开Run/Debug Configurations对话框。

    2. 点击左上角的加按钮,在弹出的Add New Configuration面板点击Application,新建Application配置。

    3. 设置Name为hello-world,Main class为com.learning.Main

    4. 点击OK按钮完成配置。

    5. 点击Run按钮运行程序,输出如下内容:

    这就是我们非常熟悉的传统的写法。那么,如果采用Spring的话,能够怎么写呢?毫无疑问,这是一个全新的话题,同时也是一个十分新鲜的话题。因为采用Spring,我们无需自己创建类的实例;只需提供一些信息告诉Spring,我们需要创建哪些类的实例。随后,Spring就能根据我们提供的信息完成实例的创建。那么,我们应该怎样告诉Spring这些信息呢? 

    没错,通过配置文件。

    我们把需要创建哪些类的实例的信息写在配置文件里,再把配置文件交给Spring。Spring读取配置文件之后就能知道具体需要创建哪些类的实例了。

    那么,配置文件应该怎么写呢?

    请展开Project面板的hello-world > src > main > resources,右击鼠标弹出上下文菜单,点击XML Configuration File > Spring Config打开New File对话框,输入app-config新建配置文件app-config.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">
        <bean id="person" class="com.learning.PersonImpl"/>
    </beans>

    就这样,配置文件写好了,是时候把它交给Spring了。为此,请修改Main类,让Spring开始工作:

     1 package com.learning;
     2 
     3 import org.springframework.context.support.ClassPathXmlApplicationContext;
     4 
     5 public class Main {
     6     public static void main(String[] args) {
     7         try (var context = new ClassPathXmlApplicationContext("app-config.xml")) {
     8             var person = context.getBean("person", Person.class);
     9             person.speak("Hello World");
    10         }
    11     }
    12 }

    看到了吧,我们把配置文件交给Spring应用上下文(Spring Application Context)。Spring应用上下文读取配置文件之后就能把类的实例创建出来。随后,我们从Spring应用上下文中获取类的实例,调用实例的方法输出Hello World。 

    现在,运行一下程序,控制台随即输出Hello World。一切是那样的妙不可言。

    这时,大家可能会说,哎呀,我的程序是跑起来了,而且也输出了Hello World;可是,配置文件和应用程序上下文的代码不是很懂呀,怎么办?大家别急,这里只是通过Hello World,让大家认识一下Spring,往后的章节我们会详细介绍配置文件,应用上下文和其它Spring的知识,到时大家就懂了。

    通过Hello World,相信大家已经看到Spring和传统的方式有何不同。只是Hello World太过简单了,大家对Spring可能只是有个最初的印象,却体会不到Spring真正的魅力,更不知道Spring对企业级应用软件的开发到底简化了多少。毕竟就这个例子而言,传统的方式代码更少,似乎更加简洁。但是,随着学习的深入,到了学习Spring MVC的时候,大家就能确切体会到Spring的魅力,以及Spring对于企业级应用软件的开发到底简化了多少了。所以,静下心来。让我们一点一点慢慢学习,一点一点慢慢体会Spring这样或那样的魅力。

    返回目录  下一篇:控制反转 

  • 相关阅读:
    正则表达式解析
    Selenium自动化测试系列文章汇总
    Python自动化测试-正则表达式解析
    滴滴滴,ITester软件测试小栈所有资源放送!
    Selenium自动化测试-文件上传
    Selenium自动化测试-浏览器基本操作
    2020牛客暑期多校第四场-H Harder Gcd Problem(贪心构造)
    2020牛客暑期多校第三场F-Fraction Construction Problem-分数构造题(拓展欧几里得)
    洛谷P1919--A*B Problem升级版(NTT优化高精度乘法)
    洛谷P4721-分治FFT(NTT分治)
  • 原文地址:https://www.cnblogs.com/evanlin/p/12651867.html
Copyright © 2011-2022 走看看