【JAVA基础篇教学】第十五篇:Java中Spring详解说明

时间:2024-04-16 08:25:19

博主打算从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 框架提供了强大的功能和丰富的模块,可以大大简化企业级应用程序的开发和维护。