博主打算从0-1讲解下java基础教学,今天教学第十五篇:Java中Spring详解说明。
Spring 框架是一个广泛应用于 Java 开发的轻量级、全栈式的企业应用开发框架,它提供了众多功能强大的模块,用于简化企业级应用程序的开发。下面详细说明 Spring 框架的各种模块以及示例代码。
基础版简单介绍,进阶篇会详细一一解释说明!
一、Spring 核心容器(Spring Core Container)
Spring 核心容器是 Spring 框架的核心部分,它包含了以下两个重要的功能:
- 依赖注入(Dependency Injection,DI):通过依赖注入,Spring 容器负责将对象之间的依赖关系注入到对象中,降低了组件之间的耦合性。
- 面向切面编程(Aspect-Oriented Programming,AOP):AOP 允许程序员定义横切关注点,然后通过切面将这些关注点与主业务逻辑分离开来,从而实现更好的模块化和代码复用。
1.示例代码:
Beans.xml:
<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">
<!-- 声明一个名为 "helloWorld" 的 bean -->
<bean id="helloWorld" class="com.example.HelloWorld">
<property name="message" value="Hello, Spring!"/>
</bean>
</beans>
HelloWorld.java
public class HelloWorld {
private String message;
public void setMessage(String message) {
this.message = message;
}
public void getMessage() {
System.out.println("Your Message : " + message);
}
}
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
obj.getMessage();
}
}
二、Spring 数据访问(Spring Data Access)
Spring 数据访问模块提供了对数据访问的支持,包括以下功能:
- JDBC 模板:简化了 JDBC 编程,提供了更简单和更少样板代码的方式来执行数据库操作。
- 对象关系映射(Object-Relational Mapping,ORM):Spring 框架支持使用各种 ORM 框架(如 Hibernate、JPA 等)进行持久化操作。
- 事务管理:Spring 提供了对声明式事务的支持,使得事务管理更加简单和方便。
1.示例代码:
Beans.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 配置数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</bean>
<!-- 配置 JDBC 模板 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 声明一个名为 "studentDAO" 的 bean -->
<bean id="studentDAO" class="com.example.StudentDAO">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
</beans>
StudentDAO.java
public class StudentDAO {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public void create(String name, Integer age) {
String SQL = "insert into Student (name, age) values (?, ?)";
jdbcTemplate.update(SQL, name, age);
System.out.println("Created Record Name = " + name + " Age = " + age);
}
}
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
StudentDAO studentDAO = (StudentDAO) context.getBean("studentDAO");
studentDAO.create("Alice", 20);
}
}
三、Spring Web 模块
Spring Web 模块提供了对 Web 开发的支持,包括 Spring MVC 和 RESTful Web 服务等。
1.示例代码:
Beans.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 配置 Spring MVC -->
<context:component-scan base-package="com.example"/>
<mvc:annotation-driven/>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
HelloWorldController.java
@Controller
public class HelloWorldController {
@RequestMapping("/hello")
public ModelAndView helloWorld() {
String message = "Hello World, Spring MVC!";
return new ModelAndView("hello", "message", message);
}
}
以上是 Spring 框架及其各种模块的详细说明和示例代码,包括了 XML 配置部分。Spring 框架提供了强大的功能和丰富的模块,可以大大简化企业级应用程序的开发和维护。