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

整站下载器 做网站地图省建设厅网站二建考试

整站下载器 做网站地图,省建设厅网站二建考试,小程序免费开发,社交网站实名备案文章目录 1. 项目整体架构2. SpringBoot核心注解详解2.1 应用程序入口注解SpringBootApplication 2.2 控制器层注解RestControllerRequestMappingPostMappingRequestBody 2.3 服务层注解ServiceAutowired 2.4 数据访问层注解Repository 2.5 实体类注解JPA相关注解Lombok注解 3.…

文章目录

    • 1. 项目整体架构
    • 2. SpringBoot核心注解详解
      • 2.1 应用程序入口注解
        • @SpringBootApplication
      • 2.2 控制器层注解
        • @RestController
        • @RequestMapping
        • @PostMapping
        • @RequestBody
      • 2.3 服务层注解
        • @Service
        • @Autowired
      • 2.4 数据访问层注解
        • @Repository
      • 2.5 实体类注解
        • JPA相关注解
        • Lombok注解
    • 3. SpringBoot开发流程
      • 3.1 创建实体类
      • 3.2 创建数据传输对象(DTO)
      • 3.3 创建数据访问层
      • 3.4 创建服务层
      • 3.5 创建控制器
      • 3.6 配置应用程序
    • 4. RESTful API设计
    • 5. 依赖注入方式
    • 6. 总结

1. 项目整体架构

本项目采用了经典的三层架构设计,这是SpringBoot应用程序的标准结构:

  • 表现层(Controller):处理HTTP请求,接收客户端数据并返回响应
  • 业务逻辑层(Service):实现业务逻辑,处理数据
  • 数据访问层(Repository):与数据库交互,实现数据的增删改查

项目结构如下:

src/main/java/org/learnspringboot/
├── LearnSpringBootApplication.java  // 应用程序入口
├── controller                       // 控制器层
│   └── UserController.java
├── service                          // 服务层
│   ├── IUserService.java            // 服务接口
│   └── UserService.java             // 服务实现
├── repository                       // 数据访问层
│   └── UserRepository.java
└── pojo                             // 实体类├── User.java                    // 数据库实体└── dto                          // 数据传输对象└── UserDTO.java

2. SpringBoot核心注解详解

2.1 应用程序入口注解

@SpringBootApplication
@SpringBootApplication
public class LearnSpringBootApplication {public static void main(String[] args) {SpringApplication.run(LearnSpringBootApplication.class, args);}
}

这是SpringBoot应用的核心注解,它相当于同时使用了以下三个注解:

  • @Configuration:标记该类为配置类
  • @EnableAutoConfiguration:启用SpringBoot的自动配置机制
  • @ComponentScan:自动扫描并注册被@Component及其派生注解标记的类

这个注解是SpringBoot简化配置的最佳体现,通过它,我们无需编写大量XML配置文件。

2.2 控制器层注解

@RestController
@RestController
@RequestMapping("/user")
public class UserController {// 方法实现
}

作用:将类标记为RESTful风格的控制器,是@Controller和@ResponseBody的组合注解。
为什么使用:使控制器方法返回的对象自动转换为JSON格式的HTTP响应,简化了RESTful API的开发。

@RequestMapping
@RequestMapping("/user")

作用:映射HTTP请求到控制器方法。
为什么使用:定义API的URL路径,本例中所有以"/user"开头的请求都会被映射到UserController。

@PostMapping
@PostMapping
public String add(@RequestBody UserDTO user) {// 方法实现
}

作用:专门处理HTTP POST请求的注解,是@RequestMapping(method = RequestMethod.POST)的简化形式。
为什么使用:明确表示该方法只处理POST请求,符合RESTful设计规范,增强代码可读性。

@RequestBody
public String add(@RequestBody UserDTO user) {// 方法实现
}

作用:将HTTP请求体中的JSON数据自动转换为Java对象。
为什么使用:简化了请求数据的解析过程,无需手动解析JSON字符串。

2.3 服务层注解

@Service
@Service
public class UserService implements IUserService {// 服务实现
}

作用:将类标记为服务组件。
为什么使用:让Spring自动识别并管理该类作为一个Bean,便于依赖注入。

@Autowired
@Autowired
UserRepository userRepository;

作用:自动注入依赖的Bean。
为什么使用:简化依赖注入过程,无需手动创建对象。

2.4 数据访问层注解

@Repository
@Repository
public interface UserRepository extends CrudRepository<User, Integer> {
}

作用:将接口标记为数据访问组件。
为什么使用:让Spring自动识别并管理该接口的实现作为一个Bean,同时能够自动转换持久化异常。

2.5 实体类注解

JPA相关注解
@Entity
@Table(name = "tb_user")
public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name = "user_id")private Integer userId;// 其他字段
}
  • @Entity:将类标记为JPA实体,表示它与数据库表对应。
  • @Table:指定实体对应的数据库表名。
  • @Id:标记主键字段。
  • @GeneratedValue:指定主键生成策略,IDENTITY表示自增。
  • @Column:指定字段对应的数据库列名。

为什么使用:通过这些注解,JPA能够自动处理对象与关系数据库之间的映射,简化了数据库操作。

Lombok注解
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserDTO {// 字段
}
  • @Data:自动生成getter、setter、equals、hashCode和toString方法。
  • @AllArgsConstructor:生成包含所有字段的构造函数。
  • @NoArgsConstructor:生成无参构造函数。

为什么使用:减少样板代码,提高开发效率。

3. SpringBoot开发流程

3.1 创建实体类

首先定义与数据库表对应的实体类,使用JPA注解进行映射:

@Entity
@Table(name = "tb_user")
public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Integer userId;// 其他字段和方法
}

3.2 创建数据传输对象(DTO)

DTO用于在不同层之间传递数据,通常不包含与数据库映射相关的注解:

@Data
public class UserDTO {private String userName;private String passWord;private String email;
}

3.3 创建数据访问层

通过继承Spring Data提供的接口,快速实现数据访问功能:

@Repository
public interface UserRepository extends CrudRepository<User, Integer> {// 可以添加自定义查询方法
}

3.4 创建服务层

服务层包含业务逻辑,通常由接口和实现类组成:

// 接口
public interface IUserService {void add(UserDTO userDTO);
}// 实现
@Service
public class UserService implements IUserService {@AutowiredUserRepository userRepository;@Overridepublic void add(UserDTO userDTO) {User userPojo = new User();BeanUtils.copyProperties(userDTO, userPojo);userRepository.save(userPojo);}
}

3.5 创建控制器

控制器处理HTTP请求,调用服务层完成业务操作:

@RestController
@RequestMapping("/user")
public class UserController {private final UserService userService;public UserController(UserService userService) {this.userService = userService;}@PostMappingpublic String add(@RequestBody UserDTO user) {userService.add(user);return "success!";}
}

3.6 配置应用程序

application.properties中配置数据库连接等信息:

# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/springboot_learn
spring.datasource.username=root
spring.datasource.password=mysql
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver# JPA配置
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

4. RESTful API设计

本项目采用RESTful风格设计API,遵循以下原则:

  • GET:查询资源(@GetMapping)
  • POST:创建资源(@PostMapping)
  • PUT:更新资源(@PutMapping)
  • DELETE:删除资源(@DeleteMapping)

示例:

// 创建用户
@PostMapping
public String add(@RequestBody UserDTO user) { ... }// 查询用户(待实现)
@GetMapping
public User get() { ... }// 更新用户(待实现)
@PutMapping
public User update() { ... }// 删除用户(待实现)
@DeleteMapping
public void delete() { ... }

5. 依赖注入方式

SpringBoot支持多种依赖注入方式,本项目使用了构造函数注入:

private final UserService userService;public UserController(UserService userService) {this.userService = userService;
}

为什么使用构造函数注入

  • 可以将依赖声明为final,确保不可变性
  • 便于单元测试
  • 明确表明依赖关系,提高代码可读性

6. 总结

SpringBoot通过约定优于配置的理念,大大简化了Spring应用的开发流程。核心优势包括:

  1. 自动配置:减少手动配置的工作量
  2. 起步依赖:简化依赖管理
  3. 嵌入式服务器:无需部署到外部服务器
  4. 注解驱动:减少XML配置,提高开发效率

通过本文介绍的项目结构和注解使用,可以快速上手SpringBoot开发,构建出高效、可维护的Web应用。

http://www.dtcms.com/wzjs/588704.html

相关文章:

  • 昆明网站建设公司推荐网站建设分析从哪几个方面
  • php网站开发实例教程 传智播客电白区建设局网站
  • 公司网站建设及维护管理总结无锡网站建设制作方案
  • 公众号链接网站都是怎么做的建设银行的投诉网站
  • 合适的网站建设的公司怎么找如何自己做软件网站
  • 如何做一个购物网站网站建设规划与管理 试卷
  • 怎么制作网站源码wordpress调用优酷视频播放器
  • 徐州做汽车销售的公司网站域名备案审核需要多久
  • 建设优惠券网站seo的方式有哪些
  • 新乡网站开发的公司广西建设职业技术学院教育网站
  • 南山区住房与建设局官方网站网站设计软件培训怎么样
  • 株洲网站制作公司在哪里长沙调查公司
  • flash网站的制作免费优化网站建设
  • 购物网站模块例子做效果图的素材网站
  • 购物网站开发的意义建网站 英文
  • 建设厅网站怎么查询安全员c考试成绩做网站用的小图标
  • 公司网站建设哪家正规杭州有哪些网站建设
  • 嘉峪关建设局公告网站做单位网站
  • vs 2017c 怎么建设网站网站建设规划怎么写
  • 网站正在维护模板佛山seo网站优化
  • 学生网页网站制作软件大全.我爱你 域名网站
  • 怎么做网站美工网站建设的销售术语
  • 电子商务做网站实训体会flash 网站建设
  • 吴忠网站建设多少钱专门做蛋糕的网站
  • 做网站用什么编程语言好建设工程合同管理多少分及格
  • 课程网站建设wordpress重新安装主题
  • 摄影协会网站源码温州网站建设前十公司
  • 网站使用arial字体下载网站不收录的技术原因
  • 只做外贸的公司网站本溪做网站 淘宝店
  • 一个网站怎么做app网站建设制作过程