Spring框架开发环境配置
1. 为IDEA配置JDK和Maven
我之前已经修过课程:信息系统开发(JAVA),那门课的课设是用servlet开发视频网站,所以我的电脑上已经配置好了JDK、IDEA和Maven的环境。因为我不想把原来的删了来回折腾,所以我尽量描述环境配置过程。
IDEA直接从jetbrains的官网下载,然后按它的提示一步步点击安装就可以了。
之后下载你想要的JDK版本,放在电脑上的合适的你能找得到的位置。我这里用jdk21作演示,虽然项目使用的是jdk11
添加系统环境变量JAVA_HOME
然后在环境变量Path中添加路径%JAVA_HOME%\bin
在windows命令行测试jdk环境是否成功配置
java -version
下载Maven在本地,然后在IDEA设置中选择Maven版本,Maven home path选择对应的Maven地址
选择JRE版本和字节码版本
2. 利用Maven导入Spring包,编写测试demo
首先创建maven项目,build system选择Maven,JDK选择11版本。
按照黑马程序员教程视频,添加文件,完善项目结构。
BookDao
public interface BookDao {
public void save();
}
public class BookDaoImpl implements BookDao {
public void save() {
System.out.println("book dao save ...");
}
}
BookService
public interface BookService {
public void save();
}
public class BookServiceImpl implements BookService {
private BookDao bookDao = new BookDaoImpl();
public void save() {
System.out.println("book service save ...");
bookDao.save();
}
}
完整的项目文件结构如下图所示:
打开porm.xml文件,配置依赖的包spring-context和junit。将以下代码插入,记得点击右上角的导入。
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
</dependencies>
在resource文件夹下创建配置xml文件,记得选择spring config
配置bean,创建两个类中的实例,并导入IoC容器中。
<bean id="bookDao" class="com.ouc.dao.impl.BookDaoImpl"/>
<bean id="bookService" class="com.ouc.service.impl.BookServiceImpl"/>
在main函数中获取IoC容器,然后从IoC容器中取得bean。
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
// BookDao bookDao = (BookDao) ctx.getBean("bookDao");
BookService bookService = (BookService) ctx.getBean("bookService");
bookService.save();
}
测试结果,成功输出两个示例的save函数中的打印内容。
3. 结合代码述评IoC在Spring框架中的体现
在Spring框架中,IoC的核心思想是将对象的创建与依赖关系的管理交给Spring容器处理,而不是由应用程序代码手动管理对象的生命周期。通过配置文件或者注解的方式,Spring可以自动管理Bean的创建与注入,从而实现松耦合的设计。
在applicationContext.xml
文件中,声明了两个bean
<bean id="bookDao" class="com.ouc.dao.impl.BookDaoImpl"/>
<bean id="bookService" class="com.ouc.service.impl.BookServiceImpl"/>
这两个类的实例创建不再由应用程序负责,而是由Spring容器在启动时自动创建和管理。
通过配置文件,Spring知道如何实例化这些类,并根据id值来获取特定的Bean。
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
BookService bookService = (BookService) ctx.getBean("bookService");
bookService.save();
应用程序从Spring容器中获取了BookServiceImpl
的实例。应用程序并不直接创建BookService
对象,而是将对象的创建和依赖管理的控制权交给了Spring容器。
IoC的两大优点:
-
应用程序代码只需从Spring容器中获取所需的对象,而无需关心这些对象是如何创建的,从而降低耦合度
-
可以通过更改配置文件或者注解来轻松替换具体的实现类,扩展系统时无需修改业务代码