Spring是什么?
- Spring 是一个开源框架。
- Spring 为简化企业级应用开发而生. 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能。
- Spring 是一个 IOC(DI) 和 AOP 容器框架。
具体描述Spring:
- 轻量级:Spring 是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API
- 依赖注入(DI --- dependency injection、IOC)
- 面向切面编程(AOP --- aspect oriented programming)
- 容器: Spring 是一个容器, 因为它包含并且管理应用对象的生命周期
- 框架: Spring 实现了使用简单的组件配置组合成一个复杂的应用. 在 Spring 中可以使用 XML 和 Java 注解组合这些对象
- 一站式:在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库 (实际上 Spring 自身也提供了展现层的 SpringMVC 和 持久层的 Spring JDBC)
Spring包含的模块:
主要有Beans、context、AOP、ORM、JDBC、Transactions、Web等等。
![d1643d7d04729ba341baefa8224795bc.png](https://i-blog.csdnimg.cn/blog_migrate/e54bac1967799371ac1220eac183762c.png)
Spring本地环境的搭建,一个简单的Spring demo。
利用idea这个开发工具,搭建demo。依次点击File-》new-》project-》Spring
![f4dafe96f4b3da3aa5d7e79d4a8da9b5.png](https://i-blog.csdnimg.cn/blog_migrate/69f5a6893db605f0fc58021fac93ce03.jpeg)
勾选图上的两个选项。然后点击next。
![ed598e1643dde2f746c6f40ace6ba418.png](https://i-blog.csdnimg.cn/blog_migrate/7eabc911f15f7ec0818b692cd84d46ad.png)
填写项目名称和项目所在位置。点击finish。
等待下载17个文件,大概需要几十秒钟的时间。可以看到我现在的Spring版本是5.2.3。完成后如下图,可以看到项目基本的结构。lib下就是依赖的17个jar包,其实也与我们最开始Spring的模块图相对应。
![1d9322041855deb070a84adf9e4bae29.png](https://i-blog.csdnimg.cn/blog_migrate/a8825981fdd64c84be6a9303d0905de9.jpeg)
接着我们就来先弄一个简单的helloworld,初步看看Spring。
src目录下新建文件夹com.jy.spring.beans。在beans下新建两个Java文件。
第一个是Helloworld.java
package
然后是Test.java
package
接着配置spring-config.xml
<?xml version="1.0" encoding="UTF-8"?>
Test.java中第一种调用方式是我们new一个HelloWorld对象出来,然后正常调用方法。第二种是通过Spring容器获取的HelloWorld对象。这里的ClassPathXmlApplicationContext就是Spring容器。一个简单的demo就完成了。
运行Test.java文件,得到如下结果
hello: jy
这里需要注意的是spring-config.xml中,property中的name属性的值是和HelloWorld类中的setName方法对应的。如果把方法名改为setName2,那么property得改成如下才行。其实这里Spring的属性注入就是根据方法名进行注入的。
<bean
如果我们只创建IOC容器。不调用后面的方法,Spring会做什么事情呢?
修改上面的Test.java如下,就是注释掉最后两行。
package
修改HelloWorld.java文件如下,setName方法增加打印,同时增加一个HelloWorld的无参构造方法。
package
同样运行Test.java,得到的结果如下
init HelloWorld
init property
可以看到的是Spring容器创建的时候会去初始化HelloWorld这个bean,并且初始化它的属性值。这就是一个简单Spring容器启动时候做的事情。