Spring MVC MVC介绍和入门案例

1.SpringMVC概述

1.1.MVC介绍

MVC是一种设计模式,将软件按照模型、视图、控制器来划分:

  • M:Model,模型层,指工程中的JavaBean,作用是处理数据

    JavaBean分为两类:

    • 一类称为数据承载Bean:专门存储业务数据的,如 Student、User 等

    • 一类称为业务处理Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。

  • V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据

  • C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器

MVC的工作流程

用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理 请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据 后最终响应给浏览器

MVC与三层架构的关系:

三层架构的分层模式是典型的上下关系,上层依赖于下层。但MVC作为表现模式是不存在上下关系的,而是相互协作关系。

三层是基于业务逻辑来分的,而mvc是基于页面来分的。

MVC与三层架构的关系:

三层架构的分层模式是典型的上下关系,上层依赖于下层。但MVC作为表现模式是不存在上下关系的,而是相互协作关系。

三层是基于业务逻辑来分的,而mvc是基于页面来分的。

1.2.Spring MVC介绍

  • Spring MVC 是Spring框架的一个模块,是一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。

  • SpringMVC 是 Spring 为表示层开发提供的一整套完备的解决方案。在表述层框架历经 Strust、WebWork、Strust2 等诸多产品的历代更迭之后,目前业界普遍选择了 SpringMVC 作为 Java EE 项目表述层开发的首选方案

2.SpringMVC 的入门

2.1.环境搭建

2.1.1.创建工程

2.1.2.添加web支持

  1. 右键项目选择Add framework support...

2.添加web支

3.效果

  • 注意:

    1. 不要先添加打包方式

    2. 将web目录要拖拽到main目录下,并改名为webapp

2.1.3.pom.xml

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555"><?xml</span> <span style="color:#555555">version="1.0" encoding="UTF-8"?></span>
<span style="color:#117700"><</span><span style="color:#117700">project</span> <span style="color:#0000cc">xmlns</span>=<span style="color:#aa1111">"http://maven.apache.org/POM/4.0.0"</span>
         <span style="color:#0000cc">xmlns:xsi</span>=<span style="color:#aa1111">"http://www.w3.org/2001/XMLSchema-instance"</span>
         <span style="color:#0000cc">xsi:schemaLocation</span>=<span style="color:#aa1111">"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"</span><span style="color:#117700">></span>
    <span style="color:#117700"><</span><span style="color:#117700">modelVersion</span><span style="color:#117700">></span>4.0.0<span style="color:#117700"></</span><span style="color:#117700">modelVersion</span><span style="color:#117700">></span>
​
    <span style="color:#117700"><</span><span style="color:#117700">groupId</span><span style="color:#117700">></span>com.by<span style="color:#117700"></</span><span style="color:#117700">groupId</span><span style="color:#117700">></span>
    <span style="color:#117700"><</span><span style="color:#117700">artifactId</span><span style="color:#117700">></span>SpringMVC_day01<span style="color:#117700"></</span><span style="color:#117700">artifactId</span><span style="color:#117700">></span>
    <span style="color:#117700"><</span><span style="color:#117700">version</span><span style="color:#117700">></span>1.0-SNAPSHOT<span style="color:#117700"></</span><span style="color:#117700">version</span><span style="color:#117700">></span>
    <span style="color:#aa5500"><!--打包方式--></span>
    <span style="color:#117700"><</span><span style="color:#117700">packaging</span><span style="color:#117700">></span>war<span style="color:#117700"></</span><span style="color:#117700">packaging</span><span style="color:#117700">></span>
​
    <span style="color:#117700"><</span><span style="color:#117700">dependencies</span><span style="color:#117700">></span>
        <span style="color:#117700"><</span><span style="color:#117700">dependency</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">groupId</span><span style="color:#117700">></span>org.springframework<span style="color:#117700"></</span><span style="color:#117700">groupId</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">artifactId</span><span style="color:#117700">></span>spring-context<span style="color:#117700"></</span><span style="color:#117700">artifactId</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">version</span><span style="color:#117700">></span>5.1.8.RELEASE<span style="color:#117700"></</span><span style="color:#117700">version</span><span style="color:#117700">></span>
        <span style="color:#117700"></</span><span style="color:#117700">dependency</span><span style="color:#117700">></span>
        <span style="color:#117700"><</span><span style="color:#117700">dependency</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">groupId</span><span style="color:#117700">></span>org.springframework<span style="color:#117700"></</span><span style="color:#117700">groupId</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">artifactId</span><span style="color:#117700">></span>spring-web<span style="color:#117700"></</span><span style="color:#117700">artifactId</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">version</span><span style="color:#117700">></span>5.1.8.RELEASE<span style="color:#117700"></</span><span style="color:#117700">version</span><span style="color:#117700">></span>
        <span style="color:#117700"></</span><span style="color:#117700">dependency</span><span style="color:#117700">></span>
        <span style="color:#117700"><</span><span style="color:#117700">dependency</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">groupId</span><span style="color:#117700">></span>org.springframework<span style="color:#117700"></</span><span style="color:#117700">groupId</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">artifactId</span><span style="color:#117700">></span>spring-webmvc<span style="color:#117700"></</span><span style="color:#117700">artifactId</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">version</span><span style="color:#117700">></span>5.1.8.RELEASE<span style="color:#117700"></</span><span style="color:#117700">version</span><span style="color:#117700">></span>
        <span style="color:#117700"></</span><span style="color:#117700">dependency</span><span style="color:#117700">></span>
​
        <span style="color:#117700"><</span><span style="color:#117700">dependency</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">groupId</span><span style="color:#117700">></span>javax.servlet<span style="color:#117700"></</span><span style="color:#117700">groupId</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">artifactId</span><span style="color:#117700">></span>servlet-api<span style="color:#117700"></</span><span style="color:#117700">artifactId</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">version</span><span style="color:#117700">></span>2.5<span style="color:#117700"></</span><span style="color:#117700">version</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">scope</span><span style="color:#117700">></span>provided<span style="color:#117700"></</span><span style="color:#117700">scope</span><span style="color:#117700">></span>
        <span style="color:#117700"></</span><span style="color:#117700">dependency</span><span style="color:#117700">></span>
​
        <span style="color:#117700"><</span><span style="color:#117700">dependency</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">groupId</span><span style="color:#117700">></span>javax.servlet.jsp<span style="color:#117700"></</span><span style="color:#117700">groupId</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">artifactId</span><span style="color:#117700">></span>jsp-api<span style="color:#117700"></</span><span style="color:#117700">artifactId</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">version</span><span style="color:#117700">></span>2.0<span style="color:#117700"></</span><span style="color:#117700">version</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">scope</span><span style="color:#117700">></span>provided<span style="color:#117700"></</span><span style="color:#117700">scope</span><span style="color:#117700">></span>
        <span style="color:#117700"></</span><span style="color:#117700">dependency</span><span style="color:#117700">></span>
    <span style="color:#117700"></</span><span style="color:#117700">dependencies</span><span style="color:#117700">></span>
    <span style="color:#117700"><</span><span style="color:#117700">build</span><span style="color:#117700">></span>
        <span style="color:#117700"><</span><span style="color:#117700">plugins</span><span style="color:#117700">></span>
            <span style="color:#aa5500"><!-- 配置Tomcat插件 --></span>
            <span style="color:#117700"><</span><span style="color:#117700">plugin</span><span style="color:#117700">></span>
                <span style="color:#117700"><</span><span style="color:#117700">groupId</span><span style="color:#117700">></span>org.apache.tomcat.maven<span style="color:#117700"></</span><span style="color:#117700">groupId</span><span style="color:#117700">></span>
                <span style="color:#117700"><</span><span style="color:#117700">artifactId</span><span style="color:#117700">></span>tomcat7-maven-plugin<span style="color:#117700"></</span><span style="color:#117700">artifactId</span><span style="color:#117700">></span>
                <span style="color:#117700"><</span><span style="color:#117700">version</span><span style="color:#117700">></span>2.2<span style="color:#117700"></</span><span style="color:#117700">version</span><span style="color:#117700">></span>
                <span style="color:#117700"><</span><span style="color:#117700">configuration</span><span style="color:#117700">></span>
                    <span style="color:#aa5500"><!--端口号--></span>
                    <span style="color:#117700"><</span><span style="color:#117700">port</span><span style="color:#117700">></span>8080<span style="color:#117700"></</span><span style="color:#117700">port</span><span style="color:#117700">></span>
                    <span style="color:#aa5500"><!--项目名--></span>
                    <span style="color:#117700"><</span><span style="color:#117700">path</span><span style="color:#117700">></span>/<span style="color:#117700"></</span><span style="color:#117700">path</span><span style="color:#117700">></span>
                <span style="color:#117700"></</span><span style="color:#117700">configuration</span><span style="color:#117700">></span>
            <span style="color:#117700"></</span><span style="color:#117700">plugin</span><span style="color:#117700">></span>
        <span style="color:#117700"></</span><span style="color:#117700">plugins</span><span style="color:#117700">></span>
    <span style="color:#117700"></</span><span style="color:#117700">build</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">project</span><span style="color:#117700">></span></span></span>

2.2.入门案例

2.2.1.index.jsp

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#117700"><</span><span style="color:#117700">%@</span> <span style="color:#0000cc">page</span> <span style="color:#0000cc">contentType</span>=<span style="color:#aa1111">"text/html;charset=UTF-8"</span> <span style="color:#0000cc">language</span>=<span style="color:#aa1111">"java"</span> <span style="color:#0000cc">%</span><span style="color:#117700">></span>
<span style="color:#117700"><</span><span style="color:#117700">html</span><span style="color:#117700">></span>
  <span style="color:#117700"><</span><span style="color:#117700">head</span><span style="color:#117700">></span>
    <span style="color:#117700"><</span><span style="color:#117700">title</span><span style="color:#117700">></span>$Title$<span style="color:#117700"></</span><span style="color:#117700">title</span><span style="color:#117700">></span>
  <span style="color:#117700"></</span><span style="color:#117700">head</span><span style="color:#117700">></span>
  <span style="color:#117700"><</span><span style="color:#117700">body</span><span style="color:#117700">></span>
  <span style="color:#117700"><</span><span style="color:#117700">a</span> <span style="color:#0000cc">href</span>=<span style="color:#aa1111">"/hello"</span><span style="color:#117700">></span>hello<span style="color:#117700"></</span><span style="color:#117700">a</span><span style="color:#117700">></span>
  <span style="color:#117700"></</span><span style="color:#117700">body</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">html</span><span style="color:#117700">></span></span></span>

2.2.2.controller

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555">@Controller</span>
<span style="color:#770088">public</span> <span style="color:#770088">class</span> <span style="color:#0000ff">HelloController</span> {
​
    <span style="color:#555555">@RequestMapping</span>(<span style="color:#aa1111">"/hello"</span>)
    <span style="color:#770088">public</span> <span style="color:#000000">ModelAndView</span> <span style="color:#000000">hello</span>() {
        <span style="color:#aa5500">//ModelAndView对象封装了模型数据和视图名称</span>
        <span style="color:#000000">ModelAndView</span> <span style="color:#000000">mv</span> <span style="color:#981a1a">=</span> <span style="color:#770088">new</span> <span style="color:#000000">ModelAndView</span>();
        <span style="color:#aa5500">//添加数据,request.setAttribute(“hello”,”hello springmvc!!”)</span>
        <span style="color:#000000">mv</span>.<span style="color:#000000">addObject</span>(<span style="color:#aa1111">"hello"</span>, <span style="color:#aa1111">"欢迎你 springmvc"</span>);
        <span style="color:#aa5500">//设置逻辑视图路径</span>
        <span style="color:#000000">mv</span>.<span style="color:#000000">setViewName</span>(<span style="color:#aa1111">"success"</span>);
        <span style="color:#aa5500">//返回数据和视图</span>
        <span style="color:#770088">return</span> <span style="color:#000000">mv</span>;
    }
}</span></span>

2.2.3.springmvc.xml

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555"><?xml</span> <span style="color:#555555">version="1.0" encoding="UTF-8"?></span>
<span style="color:#117700"><</span><span style="color:#117700">beans</span> <span style="color:#0000cc">xmlns</span>=<span style="color:#aa1111">"http://www.springframework.org/schema/beans"</span>
       <span style="color:#0000cc">xmlns:xsi</span>=<span style="color:#aa1111">"http://www.w3.org/2001/XMLSchema-instance"</span> <span style="color:#0000cc">xmlns:p</span>=<span style="color:#aa1111">"http://www.springframework.org/schema/p"</span>
       <span style="color:#0000cc">xmlns:context</span>=<span style="color:#aa1111">"http://www.springframework.org/schema/context"</span>
       <span style="color:#0000cc">xmlns:mvc</span>=<span style="color:#aa1111">"http://www.springframework.org/schema/mvc"</span>
       <span style="color:#0000cc">xsi:schemaLocation</span>=<span style="color:#aa1111">"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd</span>
        <span style="color:#aa1111">http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd</span>
        <span style="color:#aa1111">http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"</span><span style="color:#117700">></span>
    <span style="color:#aa5500"><!-- 配置创建 spring 容器要扫描的包 --></span>
    <span style="color:#117700"><</span><span style="color:#117700">context:component-scan</span> <span style="color:#0000cc">base-package</span>=<span style="color:#aa1111">"com.by"</span><span style="color:#117700">></</span><span style="color:#117700">context:component-scan</span><span style="color:#117700">></span>
​
    <span style="color:#aa5500"><!-- 配置视图解析器 --></span>
    <span style="color:#117700"><</span><span style="color:#117700">bean</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"org.springframework.web.servlet.view.InternalResourceViewResolver"</span><span style="color:#117700">></span>
        <span style="color:#117700"><</span><span style="color:#117700">property</span> <span style="color:#0000cc">name</span>=<span style="color:#aa1111">"prefix"</span> <span style="color:#0000cc">value</span>=<span style="color:#aa1111">"/WEB-INF/pages/"</span><span style="color:#117700">></</span><span style="color:#117700">property</span><span style="color:#117700">></span>
        <span style="color:#117700"><</span><span style="color:#117700">property</span> <span style="color:#0000cc">name</span>=<span style="color:#aa1111">"suffix"</span> <span style="color:#0000cc">value</span>=<span style="color:#aa1111">".jsp"</span><span style="color:#117700">></</span><span style="color:#117700">property</span><span style="color:#117700">></span>
    <span style="color:#117700"></</span><span style="color:#117700">bean</span><span style="color:#117700">></span>
​
    <span style="color:#aa5500"><!--开启springmvc注解支持:配置HandlerMapping和HandlerAdapter--></span>
    <span style="color:#117700"><</span><span style="color:#117700">mvc:annotation-driven</span><span style="color:#117700">></</span><span style="color:#117700">mvc:annotation-driven</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">beans</span><span style="color:#117700">></span></span></span>

2.2.4.success.jsp

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#117700"><</span><span style="color:#117700">%@</span> <span style="color:#0000cc">page</span> <span style="color:#0000cc">contentType</span>=<span style="color:#aa1111">"text/html;charset=UTF-8"</span> <span style="color:#0000cc">language</span>=<span style="color:#aa1111">"java"</span> <span style="color:#0000cc">%</span><span style="color:#117700">></span>
<span style="color:#117700"><</span><span style="color:#117700">html</span><span style="color:#117700">></span>
<span style="color:#117700"><</span><span style="color:#117700">head</span><span style="color:#117700">></span>
    <span style="color:#117700"><</span><span style="color:#117700">title</span><span style="color:#117700">></span>Title<span style="color:#117700"></</span><span style="color:#117700">title</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">head</span><span style="color:#117700">></span>
<span style="color:#117700"><</span><span style="color:#117700">body</span><span style="color:#117700">></span>
    <span style="color:#117700"><</span><span style="color:#117700">h2</span><span style="color:#117700">></span>${msg}<span style="color:#117700"></</span><span style="color:#117700">h2</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">body</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">html</span><span style="color:#117700">></span></span></span>

2.2.5.web.xml

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555"><?xml</span> <span style="color:#555555">version="1.0" encoding="UTF-8"?></span>
<span style="color:#117700"><</span><span style="color:#117700">web-app</span> <span style="color:#0000cc">xmlns</span>=<span style="color:#aa1111">"http://xmlns.jcp.org/xml/ns/javaee"</span>
         <span style="color:#0000cc">xmlns:xsi</span>=<span style="color:#aa1111">"http://www.w3.org/2001/XMLSchema-instance"</span>
         <span style="color:#0000cc">xsi:schemaLocation</span>=<span style="color:#aa1111">"http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"</span>
         <span style="color:#0000cc">version</span>=<span style="color:#aa1111">"4.0"</span><span style="color:#117700">></span>
    <span style="color:#117700"><</span><span style="color:#117700">servlet</span><span style="color:#117700">></span>
        <span style="color:#117700"><</span><span style="color:#117700">servlet-name</span><span style="color:#117700">></span>springmvc<span style="color:#117700"></</span><span style="color:#117700">servlet-name</span><span style="color:#117700">></span>
        <span style="color:#117700"><</span><span style="color:#117700">servlet-class</span><span style="color:#117700">></span>org.springframework.web.servlet.DispatcherServlet<span style="color:#117700"></</span><span style="color:#117700">servlet-class</span><span style="color:#117700">></span>
        <span style="color:#aa5500"><!-- 配置初始化参数,用于读取 SpringMVC 的配置文件 --></span>
        <span style="color:#117700"><</span><span style="color:#117700">init-param</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">param-name</span><span style="color:#117700">></span>contextConfigLocation<span style="color:#117700"></</span><span style="color:#117700">param-name</span><span style="color:#117700">></span>
            <span style="color:#117700"><</span><span style="color:#117700">param-value</span><span style="color:#117700">></span>classpath:springmvc.xml<span style="color:#117700"></</span><span style="color:#117700">param-value</span><span style="color:#117700">></span>
        <span style="color:#117700"></</span><span style="color:#117700">init-param</span><span style="color:#117700">></span>
        <span style="color:#aa5500"><!-- 表示容器在启动时立即创建servlet对象 --></span>
        <span style="color:#117700"><</span><span style="color:#117700">load-on-startup</span><span style="color:#117700">></span>1<span style="color:#117700"></</span><span style="color:#117700">load-on-startup</span><span style="color:#117700">></span>
    <span style="color:#117700"></</span><span style="color:#117700">servlet</span><span style="color:#117700">></span>
    <span style="color:#117700"><</span><span style="color:#117700">servlet-mapping</span><span style="color:#117700">></span>
        <span style="color:#117700"><</span><span style="color:#117700">servlet-name</span><span style="color:#117700">></span>springmvc<span style="color:#117700"></</span><span style="color:#117700">servlet-name</span><span style="color:#117700">></span>
        <span style="color:#117700"><</span><span style="color:#117700">url-pattern</span><span style="color:#117700">></span>/<span style="color:#117700"></</span><span style="color:#117700">url-pattern</span><span style="color:#117700">></span>
    <span style="color:#117700"></</span><span style="color:#117700">servlet-mapping</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">web-app</span><span style="color:#117700">></span></span></span>

2.2.6.测试

访问:http://localhost:8080/hello

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/304949.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解读 Sobit v2:铭文资产跨链更注重安全、易用性

铭文市场的发展正在从早期的“无序”进入到“有序”阶段&#xff0c;我们看到从 12 月份以来&#xff0c;比特币生态内的多个应用纷纷宣布获得融资。这表明&#xff0c;目前仍旧有大量的资金有意向铭文领域&#xff0c;同样铭文赛道新一轮浪潮或许正在酝酿。 另一方面&#xff…

Linux ps命令

一. 说明 用于显示系统中当前运行的进程信息。 提供了查看进程的不同视图和选项&#xff0c;允许用户了解系统上正在运行的进程的状态、资源使用情况等。 -e&#xff1a;显示所有进程&#xff0c;而不仅仅是与当前终端关联的进程。-f&#xff1a;以完整的格式显示进程信息&am…

混淆技术概论

混淆技术概论 引言 在逆向工程领域&#xff0c;混淆技术是一种非常重要的技术手段&#xff0c;通过打破人们的思维惯性&#xff0c;使得逆向分析变得更加困难。本文将会介绍混淆技术的概念、分类及其应用&#xff0c;以及如何使用IPA Guard进行iOS IPA重签名。 混淆技术概述…

python(17)--文件的输入/输出

前言 在Python中&#xff0c;文件文本操作是非常重要的&#xff0c;主要有以下几个原因&#xff1a; 数据持久性&#xff1a;当你需要长期存储数据&#xff0c;如用户的个人信息、交易记录或数据库元数据等&#xff0c;将数据保存在文件中是一种常见的方法。文件系统提供了持…

C# Onnx yolov8 竹签计数、一次性筷子计数

目录 效果 模型信息 项目 代码 数据集 下载 C# Onnx yolov8 竹签计数、一次性筷子计数 效果 模型信息 Model Properties ------------------------- date&#xff1a;2024-01-03T08:55:22.768617 author&#xff1a;Ultralytics task&#xff1a;detect license&#x…

一起来了解综合能源服务认证

首先&#xff0c;综合能源服务认证是有国家政策支持的&#xff0c; 《能源生产和消费革命战略&#xff08;2016-2030&#xff09;》中指出:1、能源生产端要以绿色低碳为方向&#xff0c;推动能源集中式和分布式开发并举&#xff0c;大幅提高新能源和可再生能源比重&#xff1b…

ELK生命周期

ELKkafka <es生命周期可视化配置界面> 一、创建索引模式 根据logstash中的日志规则 匹配对应系统日志 二、创建索引生命周期策略&#xff1a;可以控制生成索引的生命周期 共4个阶段&#xff1a;热阶段——温阶段——冷阶段——删除阶段 阶段1. hot: 索引被频繁写入和查…

如何让ArcGIS Pro启动显示空白页面

刚接触ArcGIS Pro的你是否会觉得在操作上有那么一些不习惯&#xff0c;从一开始软件启动就发现和ArcGIS差距很大&#xff1a;丰富的欢迎页面&#xff0c;加上默认加载的地图让你眼花缭乱&#xff0c;这里教你如何去掉这些繁杂的内容&#xff0c;还你一个干净的启动页面。 跳过…

一文弄懂SpringCloud Stream

目录 SpringCloud StreamSpringCloud Stream相关概念SpringCloud Stream使用 SpringCloud Stream Spring Cloud Stream 是一个构建消息驱动微服务的框架&#xff0c;Spring Cloud Stream 提供了一个抽象层&#xff0c;屏蔽了不同消息中间件之间的差异&#xff0c;使得开发人员…

Python 日志模块 logging 的最佳实践,内容干练简洁

文章目录 1. 引言2. 定义日志类3. 引用日志4. 参考 1. 引言 每次写 python 代码&#xff0c;想找一个日志模块 logging 的最佳实践&#xff0c;都要找一大圈&#xff0c;确不一定可以找到合适的最佳实践。 痛定思痛&#xff0c;我决定下笔记录目前觉得合适的 python 日志的用…

全志R128 SDK架构与目录结构

R128 S2 是全志提供的一款 M33(ARM)C906(RISCV-64)HIFI5(Xtensa) 三核异构 SoC&#xff0c;同时芯片内部 SIP 有 1M SRAM、8M LSPSRAM、8M HSPSRAM 以及 16M NORFLASH。本文档作为 R128 FreeRTOS SDK 开发指南&#xff0c;旨在帮助软件开发工程师、技术支持工程师快速上手&…

基于uniapp封装的card容器 带左右侧两侧标题内容区域

代码 <template><view class"card"><div class"x_flex_header"><div><title v-if"title ! " class"title" :title"title" :num"num"></title></div><div><s…

x-cmd pkg | magick - 开源图像处理工具

目录 简介首次用户功能特点类似工具与竞品进一步探索 简介 magick 是由 ImageMagick 提供的一个功能强大且多功能的开源图像处理工具&#xff0c;可以灵活高效地处理图像文件&#xff0c;例如格式转换、图像大小调整、图像裁减、图像拼接、图像色彩校正和图像合成等常见的图像…

云化XR技术于农业领域中的表现

随着科技的不断发展和应用的深入&#xff0c;农业领域也在逐渐引入新技术来优化生产效率和成本、改进管理和监控等。云化XR&#xff08;CloudXR&#xff09;作为一种融合了云计算、虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;等技术的解决方案&am…

【教程】代码混淆详解

【教程】代码混淆详解 本文将对代码混淆进行详细解释&#xff0c;并介绍ProGuard代码混淆器以及Ipa Guard工具的使用方法。首先&#xff0c;我们将了解代码混淆的概念和作用&#xff0c;然后深入讨论ProGuard混淆文件的参数设置以及代码混淆的方法。接着&#xff0c;我们将介绍…

【node link】Node命令中的node link命令的使用,还有CLI全局命令的使用,开发命令行工具必不可少的部分

&#x1f601; 作者简介&#xff1a;一名大四的学生&#xff0c;致力学习前端开发技术 ⭐️个人主页&#xff1a;夜宵饽饽的主页 ❔ 系列专栏&#xff1a;NodeJs &#x1f450;学习格言&#xff1a;成功不是终点&#xff0c;失败也并非末日&#xff0c;最重要的是继续前进的勇气…

【RabbitMQ】3 RabbitMQ使用及交换机

目录 代码示例交换机概述无名交换机绑定&#xff08;binding&#xff09;交换机的类型FanoutDirectTopic 官网地址&#xff1a;https://www.rabbitmq.com/getstarted.htm 代码示例 先来看下如何使用rabbitmq&#xff1a; 使用 Java 编写两个程序&#xff0c;发送单个消息的生…

10年工作经验老程序员推荐的7个开发类工具

做.NET软件工作已经10年了&#xff0c;从程序员做到高级程序员&#xff0c;再到技术主管&#xff0c;技术总监。见证了Visual Studio .NET 2003,Visul Studio 2005, Visual Studio Team System 2008, Visual Studio 2010 Ultimate,Visual Studio 2013一系列近5个版本的变化与亲…

了解vcruntime140.dll文件,有效解决vcruntime140.dll的方法丢失

vcruntime140.dll丢失是一个常见的问题&#xff0c;一旦出现关于vcruntime140.dll丢失的错误弹窗就会导致各种应用程序无法正常启动或运行。本篇文章小编将带大家了解vcruntime140.dll文件&#xff0c;从vcruntime140.dll文件的来源到属性&#xff0c;一一给大家介绍&#xff0…

选择智能酒精壁炉,拥抱环保与未来生活

保护环境一直是我们共同的责任和目标&#xff0c;而在这场争取保护环境的斗争中&#xff0c;选择使用智能酒精壁炉而非传统壁炉成为了一种积极的行动。这不仅仅是对环境负责&#xff0c;更是对我们自身生活质量的关照。 传统壁炉与智能酒精壁炉的对比 传统壁炉常常以木柴、煤炭…