Spring框架概述
Spring框架是一个轻量级的开源JavaEE框架,由于其强大的功能和易于使用的特点,成为了Java企业级应用开发的事实标准。Spring框架的核心特点包括:
- IoC容器:Inversion of Control(控制反转)容器是Spring框架的核心,可以解决Java应用程序的耦合问题。
- AOP支持:Spring框架通过AOP(面向切面编程)模块提供对横切关注点的支持,例如事务管理、日志记录等。
- 事务管理:Spring框架可以通过它的事务管理模块支持本地和分布式事务处理。
- Web框架:Spring框架提供了一个全面的Web框架,称为Spring MVC。
- 持久化框架:Spring框架提供了对JDBC、ORM框架(如Hibernate)和其他数据访问技术的支持。
- Spring Boot:Spring框架的一个子项目,可以使用约定优于配置的方式快速创建和运行独立的Spring应用程序。
代码部分
BookDaoImpl
/**
* Welcome to my project
* Author: RedStar
* Email: CYH.RedStar@outlook.com
* Date: 2023/3/24
*/
public class BookDaoImpl implements BookDao {
@Override
public void insert() {
System.out.println("BookDaoImpl");
}
}
BookDao
/**
* Welcome to my project
* Author: RedStar
* Email: CYH.RedStar@outlook.com
* Date: 2023/3/24
*/
public interface BookDao {
void insert();
}
BookServiceImpl
/**
* Welcome to my project
* Author: RedStar
* Email: CYH.RedStar@outlook.com
* Date: 2023/3/24
*/
public class BookServiceImpl implements BookService {
private BookDao bookDao;
public String name;
public void setName(String name) {
this.name = name;
}
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
@Override
public void save() {
System.out.println("BookServiceImpl"+",姓名:"+name);
bookDao.insert();
}
}
BookServiceVip
/**
* Welcome to my project
* Author: RedStar
* Email: CYH.RedStar@outlook.com
* Date: 2023/3/24
*/
public class BookServiceVip implements BookService {
private BookDao bookDao;
public String name;
public void setName(String name) {
this.name = name;
}
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
@Override
public void save() {
System.out.println("BookServiceVip"+",年龄"+name);
bookDao.insert();
}
}
BookService
/**
* Welcome to my project
* Author: RedStar
* Email: CYH.RedStar@outlook.com
* Date: 2023/3/24
*/
public interface BookService {
void save();
}
Test01
/**
* Welcome to my project
* Author: RedStar
* Email: CYH.RedStar@outlook.com
* Date: 2023/3/24
*/
public class Test01 {
BookService bookService;
@Test
public void test() {
//1.获得IOC容器
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
//2.根据名字从容器中获取对象
bookService = (BookService) context.getBean("bookService");
bookService.save();
}
}
spring.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">
<!--把所有对象创建到spring的IOC容器中,并起上名字
id:表示给对象起名字
class:类的全类名
-->
<bean id="bookDao" class="com.cyh.dao.impl.BookDaoImpl"></bean>
<!--spring的依赖注入:property表示BookServiceImpl的属性,常规属性使用value赋值,
类型属性使用ref引用-->
<bean id="bookService" class="com.cyh.service.impl.BookServiceVip">
<property name="name" value="李四"/>
<property name="bookDao" ref="bookDao"/>
</bean>
</beans>
总结
通过使用Spring框架,可以大大提高Java应用程序的开发效率和质量。在本例中,我们演示了如何使用Spring框架创建一个简单的应用程序,包括使用IoC容器和依赖注入来管理应用程序的对象和依赖关系。同时,我们还演示了如何使用Spring框架的AOP模块,将业务逻辑与横切关注点分离,提高了代码的可维护性和可测试性。