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

温州教育网站建设好口碑的网站制作安装价格

温州教育网站建设,好口碑的网站制作安装价格,百度灰色关键词排名推广,赣州网页设计公司目录 Spring Bean将一个类声明为 Bean自动装配 Bean声明 Bean 的作用域 前端后传值处理常见的 HTTP 请求类型读取配置文件定时任务全局 Controller 层异常处理 Spring Bean 将一个类声明为 Bean Component#xff1a;通用的注解#xff0c;可标注任意类为 Spring 组件。如果… 目录 Spring Bean将一个类声明为 Bean自动装配 Bean声明 Bean 的作用域 前端后传值处理常见的 HTTP 请求类型读取配置文件定时任务全局 Controller 层异常处理 Spring Bean 将一个类声明为 Bean Component通用的注解可标注任意类为 Spring 组件。如果一个 Bean 不知道属于哪个层可以使用 Component 注解标注。Repository用于标识数据访问层DAO 层组件类作为Bean主要用于数据库相关操作。Service用于标识服务层组件类作为 Bean主要涉及一些复杂的逻辑需要用到 Dao 层。Controller/RestCpntroller对应 Spring MVC 控制层主要用于接受用户请求并调用 Service 层返回数据给前端页面。Configuration一般用来声明配置类可以使用 Component 注解替代但是使用 Configuration 注解声明配置类时更易理解。 自动装配 Bean 1在 Spring 中自动装配 Bean 的注解有以下几种 Autowired自动按照类型进行装配如果一个接口有多个实现类可以在需要的属性上加上 Qualifier 注解指定名称。Qualifier在与 Autowired 连用时指定按照名称装配。Resource默认按照名称进行装配名称可以通过 name 属性进行指定如果基于名称注入失败则转为基于类型注入。Inject与 Autowired 功能一样但是需要额外导入 javax.inject 包因为它是 Java EE 标准中的注解。 2这些注解可以在某个类中的属性、构造方法或者 set 方法上进行使用从而使得该属性、构造方法或 set 方法自动装配相应的 Bean。可以根据具体需要选择适合的自动装配注解进行使用。 声明 Bean 的作用域 1Scope 注解用于指定 Spring 容器中 Bean 的作用域。它的主要作用是控制 Spring 容器中 Bean 的生命周期包括创建、初始化、销毁等过程。Scope 注解有以下几个属性值 singleton (默认值)表示 Spring 容器中只有一个实例每次请求都返回同一个实例底层是采用单例模式来实现的。prototype表示 Spring 容器中每次请求返回一个新的实例。request表示在一次 HTTP 请求中每次请求返回一个新的实例。session表示在一个 HTTP Session 中每次请求返回一个新的实例。global session表示在一个全局的 HTTP Session 中每次请求返回一个新的实例。 2举例说明 // Bean 注解在配置类中通过方法返回值来手动注册为 Bean Bean Scope(prototype) public Person personSingleton() {return new Person(); }上述示例中使用 Scope 注解指定 Person 类的作用域为 prototype表示每次从 Spring 容器中获取该 Bean 时都会返回一个新的实例。如果不指定默认的作用域为 singleton表示从 Spring 容器中获取到的都是同一个实例。 3除了上面列举的作用域Spring 还提供了一些作用域注解和自定义作用域的方式供用户使用如SessionScope、RequestScope、ApplicationScope 等。根据实际需要选择适当的作用域可以有效地控制 Spring 容器中 Bean 的生命周期和内存资源的使用。 有关注解 Component 和 Bean 的区别可参考Spring 常见面试题这篇文章中的 2.4 节。 前端后传值 Spring Boot 中前后端传值的注解主要有以下几个 RequestBody该注解用于读取前端传来的 Request 请求例如 POST、PUT、DELETE、GET 等请求的 body 部分并且 Content-Type 为 application/json 格式的数据接收到数据之后会自动将数据绑定到 Java 实体类对象上。 PostMapping(/user) public void addUser(RequestBody User user) {// TODO: 添加用户到数据库 }RequestParam这个注解用于接收前端传来的请求参数。例如 GetMapping(/user) public User getUser(RequestParam(id) Integer id) {// TODO: 根据 id 从数据库中获取用户信息 }PathVariable这个注解用于接收 URL 中的动态参数。例如 GetMapping(/user/{id}) public User getUserById(PathVariable(id) Integer id) {// TODO: 根据 id 从数据库中获取用户信息 }ModelAttribute这个注解用于在表单提交时接收表单中的数据并将其转换成对应的 Java 实体类对象。例如 PostMapping(/user) public void addUser(ModelAttribute User user) {// TODO: 添加用户到数据库 }注意一个请求方法只可以有一个 RequestBody但是可以有多个 RequestParam 和 PathVariable。 处理常见的 HTTP 请求类型 1在介绍与处理常见的 HTTP 请求相关的注解之前先看看下面 5 种常见的 HTTP 请求类型 GET用于向指定的 URL 获取数据。例如 GET /user?id1 HTTP/1.1 Host: example.comPOST用于向指定的 URL 提交数据数据被包含在请求体中。例如 POST /user HTTP/1.1 Host: example.com{id:1, name:john, age:18}PUT用于向指定的 URL 提交更新数据数据被包含在请求体中。例如 PUT /user HTTP/1.1 Host: example.com{id:1, name:john, age:19}DELETE用于请求服务器删除指定的 URL 资源。例如 DELETE /user?id1 HTTP/1.1 Host: example.comPATCH用于向指定的 URL 提交局部修改的数据数据被包含在请求体中。例如 PATCH /user HTTP/1.1 Host: example.com{id:1, age:20}以上是常见的 5 种 HTTP 请求类型它们在 RESTful API 中都有广泛应用。它们的不同之处在于请求语义和数据的传递方式开发者需要根据实际场景选择合适的请求类型。 2Spring Boot 中与处理常见的 HTTP 请求类型有关的注解主要有以下几个 GetMapping处理 HTTP 的 GET 请求。例如 // GetMapping(user/{userId}) 等价于 RequestMapping(value/user/{userId}, methodRequestMethod.GET) GetMapping(/user/{userId}) public RespBean getUserById(PathVariable(userId) Long userId) {// TODO: 根据 userId 从数据库中获取用户信息User user new User();user.setId(userId);user.setName(Alice);user.setAge(20);return RespBean.success(获取用户信息成功, user); }PostMapping处理 HTTP 的 POST 请求。例如 // PostMapping(user) 等价于 RequestMapping(value/user, methodRequestMethod.POST) PostMapping(/user) public RespBean addUser(RequestBody User user) {// TODO: 添加用户到数据库并返回新用户的 idLong newUserId 2L;user.setId(newUserId);return RespBean.success(添加用户成功, user); }PutMapping处理 HTTP 的 PUT 请求。例如 // PutMapping(/user/{userId}) 等价于 RequestMapping(value/user/{userId}, methodRequestMethod.PUT) PutMapping(/user/{userId}) public RespBean updateUser(PathVariable(userId) Long userId, RequestBody User user) {// TODO: 根据 userId 更新用户信息并返回更新后的用户信息user.setId(userId);user.setAge(30);return RespBean.success(更新用户信息成功, user); }DeleteMapping处理 HTTP 的 DELETE 请求。例如 // DeleteMapping(/user/{userId})等价于 RequestMapping(value/user/{userId}, methodRequestMethod.DELETE) DeleteMapping(/user/{userId}) public RespBean deleteUserById(PathVariable(userId) Long userId) {// TODO: 根据 userId 从数据库中删除用户信息return RespBean.success(删除用户信息成功); }PatchMapping处理 HTTP 的 PATCH 请求在 RESTful API 中常用于更新部分资源的信息。例如对于一个 User 对象我们可以使用 PATCH 请求更新该对象的部分属性如只更新用户名或者年龄等。具体实现可以根据传入的 JSON 数据中的属性进行判断只更新其中修改过的属性而不是全部属性。一个示例代码如下 PatchMapping(/users/{userId}) public RespBean partialUpdateUser(PathVariable(userId) Long userId, RequestBody MapString, Object updates) {// TODO: 根据 userId 更新用户的部分属性User user getUserFromDatabase(userId);if (updates.containsKey(name)) {user.setName((String) updates.get(name));}if (updates.containsKey(age)) {user.setAge((Integer) updates.get(age));}// ...updateUserToDatabase(user);return RespBean.success(更新用户信息成功, user); }在上面的示例中通过接收一个 Map 类型的 updates 参数可以根据不同的属性进行不同的处理并将更新后的用户对象返回。使用 RespBean 作为统一的结果返回类可以很方便地将更新结果的状态码、提示语及数据打包成一个 RespBean 返回给调用方。 3以上是 Spring Boot 中常见的 HTTP 请求类型的一些注解它们可以很方便地处理不同类型的请求并且能够以 RESTful 风格返回数据在返回结果时使用统一的自定义的 RespBean 类型使得开发者可以更加方便地统一处理返回结果的格式。 读取配置文件 与读取配置文件相关的注解如下所示 Value获取配置文件中的值ConfigurationProperties将配置文件中的值注入到一个 JavaBean 中PropertySource读取指定位置的 properties 文件 上述注解的具体细节可参考Spring Boot 面试题——配置文件这篇文章。 定时任务 与实现定时任务相关的注解如下所示 Scheduled用于创建定时任务通过使用该注解可以在指定的时间间隔内反复执行带有注解的方法。Scheduled 注解支持 cron 表达式、固定速率和固定延迟等方式来指定任务的执行时间。Enablescheduling发现注解 Scheduled 的任务并在后台执行该任务一般在启动类上添加该注解 上述注解的具体细节可参考 Spring Boot 面试题——定时任务这篇文章。 全局 Controller 层异常处理 与全局 Controller 层异常处理相关的注解如下所示 ControllerAdvice定义全局异常处理器类处理异常后返回视图或 HTML 页面所以处理器方法必须返回 ModelAndView 对象或者 String类型的视图名称RestControllerAdvice定义全局异常处理器类处理异常后的返回值是纯数据JSON 或 XML 格式的数据因此所以处理器方法可以直接返回对象、字符串等数据类型ExceptionHandler指定异常处理方法 上述注解的具体细节可参考 Spring Boot 面试题——全局异常处理这篇文章。
http://www.zqtcl.cn/news/259919/

相关文章:

  • 网站建设流程有哪七步c语言做的网站有什么优缺点
  • 树在线网页制作网站邢台中北世纪城网站兼职
  • 备案网站建设方案模板怎么看网站域名
  • asp iis设置网站路径效果好网站建设哪家好
  • 河南做外贸网站的公司大连在哪个省的什么位置
  • 网站架构怎么做wordpress e-commerce themes
  • 哪些网站微信支付平台经营管理系统
  • 教育教学成果展示网站建设桂林网站开发公司
  • 唐山房产网站建设asp.net 网站压缩
  • 卫浴网站设计大型网站建设的必须条件
  • 肇庆制作企业网站seo网站建设课程
  • 没有公司自己做网站wordpress lms插件
  • 申请一个网站需要怎么做北京网络公司信息
  • 珠海市建设局网站分销系统价格多少
  • 杭州建网站企业seo营销工具
  • php旅游类网站开发wordpress 文章内
  • 企业管理外贸企业网站优化
  • 免费图纸网东莞百度快照优化排名
  • 南宁网站建设培训学校青海网站建设加q5299丶14602做词
  • 鱼台做网站多少钱wordpress pot
  • 招聘网站建设维护人员怎样自己开发一款软件
  • 上海网站制作怎么选泰安网红人物
  • 企业网站建设义乌南靖网站建设
  • 抖音电商网站建设如何制作app推广
  • 关键词的选择网站提示网站建设电销异议处理话术
  • 南京建设网站内容网站打开速度慢是否需要升级带宽
  • 内容类网站如何 流量厦门市建设局网站住房保障专栏
  • 朝城做网站公司网站内容建设要求age06
  • 云南省城乡建设培训中心网站备份wordpress网站
  • 快速建站公司地址vr哪家公司做得好