当前位置: 首页 > news >正文

做网站费用 优帮云百度网页网址

做网站费用 优帮云,百度网页网址,怎么看网站用什么代码做的,高端网站建设公司有必要做吗在创建一个 Spring Boot 项目时,为了提高代码的可维护性、可扩展性和清晰度,通常会按照一定的分层架构进行设计。常见的分层架构包括以下几层: 1. Controller 层(Web 层) 作用:接收用户请求,并…

在创建一个 Spring Boot 项目时,为了提高代码的可维护性、可扩展性和清晰度,通常会按照一定的分层架构进行设计。常见的分层架构包括以下几层:

1. Controller 层(Web 层)

  • 作用:接收用户请求,并调用相应的业务逻辑,最终返回视图或数据。
  • 职责:处理 HTTP 请求,调用 Service 层来执行业务逻辑,然后将结果返回给客户端。通常,Controller 层与前端直接交互。
  • 组件:Spring MVC 中的 @RestController@Controller 注解。
  • 示例
    @RestController
    @RequestMapping("/api/users")
    public class UserController {@Autowiredprivate UserService userService;@GetMapping("/{id}")public User getUserById(@PathVariable Integer id) {return userService.getUserById(id);}@PostMappingpublic User createUser(@RequestBody User user) {return userService.createUser(user);}
    }
    

 2. Service 层(业务逻辑层)

  • 作用:处理业务逻辑,通常是 Controller 层和 Repository 层之间的纽带。
  • 职责:包含具体的业务处理代码,如数据验证、数据加工、调度等。Service 层不直接处理 HTTP 请求,而是处理具体的业务逻辑,通常依赖于 DAO 层来访问数据库。
  • 组件@Service 注解。
  • 示例
    @Service
    public class UserService {@Autowiredprivate UserRepository userRepository;public User getUserById(Integer id) {return userRepository.findById(id).orElse(null);}public User createUser(User user) {return userRepository.save(user);}
    }
    

3. Repository 层(持久层) 

  • 作用:负责与数据库进行交互,执行 CRUD 操作。
  • 职责:直接与数据库进行交互,通过 JPA、MyBatis、JDBC 等方式执行数据操作。常见的 Spring 数据库访问技术是 JPA 和 Spring Data JPA。
  • 组件@Repository 注解,或者继承 JpaRepositoryCrudRepository 等接口。
  • 示例
    @Repository
    public interface UserRepository extends JpaRepository<User, Integer> {// JpaRepository 提供了基本的 CRUD 操作
    }
    

4. Entity 层(实体层) 

  • 作用:表示数据库中的一张表,映射到 Java 类中。实体类通常包含表中的字段及对应的 getter 和 setter 方法。
  • 职责:定义数据库表的结构。它通常包含属性、构造函数、getter 和 setter 方法,可能还会有一些业务逻辑(如验证)或其他注解(如验证注解)。
  • 组件:JPA 实体类使用 @Entity@Table@Id 等注解。
  • 示例
    @Entity
    @Table(name = "user")
    public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Integer id;private String userName;private String userPassword;private String userRegisterTime;// getters and setters
    }
    

5. DTO 层(数据传输对象层)

  • 作用:传递数据的对象,通常用于 Controller 层和前端之间的数据交换,或者后端系统之间的交互。
  • 职责:封装前端需要的数据,简化数据传输。DTO 通常不包含业务逻辑,而是用于数据传输。DTO 和实体类类似,但通常会避免直接暴露实体类的敏感信息。
  • 示例
    public class UserDTO {private Integer id;private String userName;private String userRegisterTime;// getters and setters
    }
    

6. Exception 层(异常处理层) 

  • 作用:集中管理异常,捕获并处理应用程序中的各种异常。
  • 职责:处理应用程序中的业务异常和系统异常。通常使用 @ControllerAdvice@ExceptionHandler 来全局处理异常,并返回友好的错误信息给用户。
  • 组件@ControllerAdvice 注解。
  • 示例
    @ControllerAdvice
    public class GlobalExceptionHandler {@ExceptionHandler(UserNotFoundException.class)public ResponseEntity<String> handleUserNotFoundException(UserNotFoundException ex) {return new ResponseEntity<>(ex.getMessage(), HttpStatus.NOT_FOUND);}
    }
    

7. Configuration 层(配置层) 

  • 作用:用于存放 Spring 配置类,负责整个应用程序的配置。
  • 职责:处理项目的所有配置内容,包括数据库配置、第三方 API 配置、消息队列配置等。Spring Boot 可以通过 @Configuration@EnableAutoConfiguration 自动配置项目。
  • 组件@Configuration 注解。
  • 示例
    @Configuration
    public class AppConfig {@Beanpublic DataSource dataSource() {// 配置数据源}@Beanpublic JdbcTemplate jdbcTemplate(DataSource dataSource) {return new JdbcTemplate(dataSource);}
    }
    

8. Utility 层(工具类层) 

  • 作用:提供一些通用的工具类,用于简化业务代码的实现,通常包括日期、字符串、文件等常见操作。
  • 职责:提供一些静态方法,避免在各层中重复编写相似的代码。
  • 示例
    public class DateUtil {public static String formatDate(LocalDate date) {// 格式化日期}
    }
    

常见的分层架构结构: 

com.example.project
│
├── controller        # 控制器层(Web 层)
│   └── UserController.java
│
├── service           # 业务逻辑层
│   └── UserService.java
│
├── repository        # 持久层
│   └── UserRepository.java
│
├── entity            # 实体层
│   └── User.java
│
├── dto               # 数据传输对象
│   └── UserDTO.java
│
├── exception         # 异常处理层
│   └── GlobalExceptionHandler.java
│
├── config            # 配置层
│   └── AppConfig.java
│
├── util              # 工具类
│   └── DateUtil.java
│
└── Application.java  # 启动类
http://www.15wanjia.com/news/11900.html

相关文章:

  • wordpress改成中文镇江seo公司
  • asp.net 企业官网网站 源码 多风格 多模板 多皮肤阿里巴巴国际站
  • 公司logo 标志 图案南宁网站seo
  • 做网站费用 会计分录培训心得体会感悟
  • 网站推广的途径个人接app推广单去哪里接
  • 网站首页滚动大图怎么做天津seo顾问
  • 兴仁县城乡建设局网站百度关键词怎么做排名
  • 具体的网站建设免费加客源
  • 惠州网站建设学校八宿县网站seo优化排名
  • 企业网站定制多少钱中国十大广告公司排行榜
  • 聊城做网站推广公司公司网站建设北京
  • 做网购网站要多少钱日本和韩国是亚洲的国家
  • 北京哪家网站建设公司好优化快速排序
  • 北京专业网站建设公司哪家好杭州专业seo
  • 手工活接单在家做有正规网站吗网络销售员每天做什么
  • 江苏建设科技网seo关键词如何布局
  • 临朐网站建设建站什么是软文推广
  • 网站怎么做301跳转方象科技专注于什么领域
  • 做招聘的h5用哪个网站适合35岁女人的培训班
  • 建设银行科技中心网站首页深圳seo招聘
  • 公司网站建设分录自己如何注册网站
  • 怎么使用腾讯云做网站惠州网络营销公司
  • 中国十大营销策划机构南宁seo渠道哪家好
  • 网站开发具体步骤免费创建网站的平台
  • 做网站 好苦逼比较开放的浏览器
  • 做花型设计哪个网站下载素材好南宁seo优化公司
  • 《网站推广策划》今日足球赛事分析推荐
  • 网站开发语言和数据库广州网站到首页排名
  • 餐饮营销网站建设百度指数使用指南
  • 全国备案网站数量网页设计学生作业模板