SSM框架详解:结构创建与注解应用

Alt

文章目录

    • 1. 引言
    • 2. SSM框架项目结构创建
      • 2.1 目录结构
      • 2.2 说明
    • 3. 注解的应用
      • 3.1 `@Controller`
      • 3.2 `@Service`
      • 3.3 `@Repository`
      • 3.4 `@Autowired`
      • 3.5 `@RequestMapping`
      • 3.6 `@Select`、`@Insert`等
    • 4. 结语

个人主页:程序员 小侯
CSDN新晋作者
欢迎 点赞✍评论⭐收藏
✨收录专栏:Java框架
✨文章内容:创建与注解
希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!

1. 引言

SSM框架(Spring + SpringMVC + MyBatis)是一种广泛应用于JavaWeb开发的技术栈。其中,Spring负责管理应用程序的对象(IoC),SpringMVC负责处理用户请求和返回响应,MyBatis用于简化数据库操作。在SSM框架中,结构创建和注解的应用是关键的开发实践,本文将深入探讨这两个方面。
SSM框架详解:结构创建与注解应用_第1张图片

2. SSM框架项目结构创建

2.1 目录结构

一个良好的项目结构有助于提高代码的可维护性和可扩展性。下面是一个典型的SSM框架项目结构:

|-- src
|   |-- main
|   |   |-- java
|   |   |   |-- com
|   |   |   |   |-- example
|   |   |   |   |   |-- controller  // 控制层
|   |   |   |   |   |-- dao         // 数据访问层
|   |   |   |   |   |-- service     // 业务逻辑层
|   |   |   |   |   |-- entity      // 实体类
|   |   |-- resources
|   |   |   |-- mybatis             // MyBatis映射文件
|   |   |   |-- spring              // Spring配置文件
|   |   |   |-- springmvc           // SpringMVC配置文件
|   |-- webapp
|   |   |-- WEB-INF
|   |   |   |-- views               // 视图层
|   |   |   |-- web.xml             // Web配置文件
|-- pom.xml                        // Maven配置文件

SSM框架详解:结构创建与注解应用_第2张图片

2.2 说明

  • controller:控制层,接收用户请求并调用业务逻辑层处理。
@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/getUserById")
    public String getUserById(Model model, @RequestParam("id") int id) {
        User user = userService.getUserById(id);
        model.addAttribute("user", user);
        return "userDetail";
    }
    // 其他请求处理方法
}
  • dao:数据访问层,与数据库交互,执行SQL语句。
@Mapper
public interface UserMapper {

    @Select("SELECT * FROM user WHERE id = #{id}")
    User getUserById(@Param("id") int id);

    @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
    void addUser(User user);
    // 其他SQL语句映射方法
}
  • service:业务逻辑层,处理业务逻辑,调用数据访问层。
@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public User getUserById(int id) {
        return userMapper.getUserById(id);
    }

    public void addUser(User user) {
        userMapper.addUser(user);
    }
    // 其他业务逻辑方法
}
  • entity:实体类,与数据库表一一对应,用于封装数据。
public class User {

    private int id;
    private String name;
    private int age;

    // 省略getter和setter
}
  • mybatis:存放MyBatis的映射文件,配置SQL语句和实体类的映射关系。

<mapper namespace="com.example.dao.UserMapper">

    <select id="getUserById" resultType="com.example.entity.User">
        SELECT * FROM user WHERE id = #{id}
    select>

    <insert id="addUser" parameterType="com.example.entity.User">
        INSERT INTO user(name, age) VALUES(#{name}, #{age})
    insert>

    
mapper>
  • spring:Spring框架的配置文件,包括数据源配置、事务管理等。

<context:component-scan base-package="com.example" />
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    
bean>

  • springmvc:SpringMVC框架的配置文件,包括视图解析器、拦截器等。

<context:component-scan base-package="com.example" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    
bean>

3. 注解的应用

SSM框架广泛使用注解简化配置,提高开发效率。以下是一些常用注解的应用:

3.1 @Controller

用于标识一个类为SpringMVC的Controller,负责处理用户请求。

@Controller
@RequestMapping("/user")
public class UserController {
    // 请求处理方法
}

3.2 @Service

用于标识一个类为Spring的服务层组件,通常用于定义业务逻辑。

@Service
public class UserService {
    // 业务逻辑方法
}

3.3 @Repository

用于标识一个类为Spring的数据访问层组件,通常用于与数据库交互。

@Repository
public interface UserMapper {
    // 数据访问方法
}

3.4 @Autowired

用于自动装配Spring容器中的bean。

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;
    // ...
}

3.5 @RequestMapping

用于映射请求路径,指定处理请求的方法。

@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/getUserById")
    public String getUserById(Model model, @RequestParam("id") int id) {
        // 处理请求的方法
    }
    // ...
}

3.6 @Select@Insert

用于映射MyBatis的SQL语句,与XML配置文件相对应。

@Mapper
public interface UserMapper {

    @Select("SELECT * FROM user WHERE id = #{id}")
    User getUserById(@Param("id") int id);

    @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
    void addUser(User user);
    // ...
}

4. 结语

通过良好的项目结构和注解的应用,SSM框架能够更好地发挥其优势,简化配置,提高开发效率。在实际项目中,可以根据具体需求进一步优化项目结构和灵活使用注解,以更好地满足业务需求。希望本文对于理解SSM框架的项目结构和注解的应用有所帮助。

后记 美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!!

你可能感兴趣的:(Mybatis,Java框架,java,spring,mybatis,mvc,框架)