Spring入门(一):创建Spring项目

 2023-09-10 阅读 69 评论 0

摘要:本篇博客作为Spring入门系列的第一篇博客,不会讲解什么是Spring以及Spring的发展史这些太理论的东西,主要讲解下如何使用IntelliJ IDEA创建Spring项目以及通过一个示例了解下Spring的简单使用。 1. 创建Spring项目 首先,按照下图所示打开“新建项目”弹

本篇博客作为Spring入门系列的第一篇博客,不会讲解什么是Spring以及Spring的发展史这些太理论的东西,主要讲解下如何使用IntelliJ IDEA创建Spring项目以及通过一个示例了解下Spring的简单使用。

1. 创建Spring项目

首先,按照下图所示打开“新建项目”弹出框:

424537-20190228094751914-1364313803.png

然后在左侧选择项目类型Spring:

eclipse创建java项目?424537-20190228094721112-2145359105.png

如果这里忘记了选择"Create empty spring-config.xml",也可以新建完项目再新建配置文件。

424537-20190228094613313-1961722454.png

snipaste_20190809_152032.png

接着,确定好项目名称和保存路径,然后点击"Finish"按钮:

maven创建web项目?snipaste_20190809_135725.png

因为需要下载Spring依赖的包,因此需要加载一会。

424537-20190228094508752-721420813.png

新建完的项目结构图如下所示:

424537-20190228094439301-232517882.png

2. Spring示例

创建项目?新建一个Book类,定义两个字段bookName,author和一个实例方法printBookInfo()

public class Book {private String bookName;private String author;public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public void printBookInfo() {System.out.println("Book Name:" + this.bookName + ",Author:" + this.author);}
}

如果我们想要输出图书信息,按照传统的方式,需要以下几步:

  1. 创建Book类的实例对象
  2. 设置实例对象的bookName字段和author字段
  3. 调用实例对象的printBookInfo()方法
public class Main {public static void main(String[] args) {Book book = new Book();book.setBookName("平凡的世界");book.setAuthor("路遥");book.printBookInfo();}
}

运行结果:

Book Name:平凡的世界,Author:路遥

那么在Spring项目中,如何实现同样的调用呢?

开展项目、首先,修改spring-config.xml,添加如下配置:

<bean id="book" class="Book"><property name="bookName" value="平凡的世界"/><property name="author" value="路遥"/>
</bean>

然后修改Main的方法为:

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Main {public static void main(String[] args) {ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-config.xml");Book book = applicationContext.getBean("book", Book.class);book.printBookInfo();}
}

运行结果:

424537-20190228094354971-848456512.png

我们会发现,运行结果和传统方式一样,只是多了一些Spring的日志信息。

c项目开发实战入门,在上面的代码中,我们并未使用new运算符来创建Book类的实例,但是却可以得到Book类的实例,这就是Spring的强大之处,所有类的实例的创建都不需要应用程序自己创建,而是交给Spring容器来创建及管理。

3. Spring示例讲解

虽说实例的创建交给Spring容器来创建及管理,但是在上述的代码中,什么时候创建了Book类的实例并对字段赋值了呢?

为验证这个疑问,我们修改下Book类。

public class Book {private String bookName;private String author;public Book(){System.out.println("This is Book constructor.");}public String getBookName() {return bookName;}public void setBookName(String bookName) {System.out.println("This is Book setBookName().");this.bookName = bookName;}public String getAuthor() {return author;}public void setAuthor(String author) {System.out.println("This is Book setAuthor().");this.author = author;}public void printBookInfo() {System.out.println("Book Name:" + this.bookName + ",Author:" + this.author);}
}

再添加一个Author类:

public class Author {private String name;private int age;public Author() {System.out.println("This is Author constructor.");}public String getName() {return name;}public void setName(String name) {System.out.println("This is Author setName().");this.name = name;}public int getAge() {return age;}public void setAge(int age) {System.out.println("This is Author setAge().");this.age = age;}public void printAuthorInfo() {System.out.println("Name:" + this.name + ",Age:" + this.age);}
}

然后修改下spring-config.xml文件。

<bean id="book" class="Book"><property name="bookName" value="平凡的世界"/><property name="author" value="路遥"/>
</bean>
<bean id="author" class="Author"><property name="name" value="路遥"/><property name="age" value="60"/>
</bean>

项目文件?最后,我们修改下Main类的代码来Debug下,看下代码的执行顺序。

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Main {public static void main(String[] args) {ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-config.xml");Book book = applicationContext.getBean("book", Book.class);book.printBookInfo();Author author = applicationContext.getBean("author", Author.class);author.printAuthorInfo();}
}

为更直观的展示,请看如下的Gif图。

424537-20190228094242154-283489989.gif

从图中,我们可以看出,在执行完 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-config.xml");后,控制台先输出了以下内容:

This is Book constructor.

Springboot。This is Book setBookName().

This is Book setAuthor().

This is Author constructor.

This is Author setName().

This is Author setAge().

项目、也就是这句代码执行完后,Book类和Author类的实例已经被创建并且字段已经被赋值,接下来的代码只是从Spring容器中获取实例而已。

4. 注意事项

获取Bean时,第一个参数beanName要与spring-config.xml定义的bean id保持一致,比如我们在spring-config.xml中定义的是book,如果在获取时写的是Book,就会报错。

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Main {public static void main(String[] args) {ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-config.xml");// 错误的beanNameBook book = applicationContext.getBean("Book", Book.class);book.printBookInfo();}
}

报错信息如下所示:

424537-20190228094121691-784000136.png

5. 源码及参考

源码地址:https://github.com/zwwhnly/spring-action.git,欢迎下载。

创建一个javaweb项目,【Spring】IntelliJ IDEA搭建Spring环境

idea中Spring项目创建以及实现一个小的IoC案例

6. 最后

欢迎扫码关注微信公众号:「申城异乡人」,定期分享Java技术干货,让我们一起进步。

qrcode_for_gh_630f874626a0_258.jpg

转载于:https://www.cnblogs.com/zwwhnly/p/10448434.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/47573.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息