Spring+SpringMVC+Mybatis 整合入门

文章目录

  • 整体结构
  • 结构图
  • Spring 整合SpringMVC
    • web.xml
    • SpringMvc.xml
  • Spring整合Mybatis
    • applicationContext.xml
    • 代理接口的配置accountDaoimpl.xml
  • 其余代码
    • 表现层
    • 业务层
    • 持久层
    • domain
    • 查询效果展示
  • 附上spring约束
    • spring约束
    • SpringMVC约束
  • Maven 依赖

整体结构

在这里插入图片描述

结构图

在这里插入图片描述

Spring 整合SpringMVC

整合SpringMVC我们需要将Spring的配置文件加载到服务器中(配置Spring ioc容器)。
我们可以使用Spring的ContextLoaderListener 监听器去监听ServletContext的生命周期。

 <listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>

在启动服务器时监听ServletContext的创建,在这时载入Spring的配置文件,这样就整合成功了。但是有个细节。ContextLoaderListener 默认加载只加载WEB-INF目录下的的applicationContext.xml文件,所以我们Spring的配置文件的名称要设置为applicationContext.xml,但是在一般情况下我们的配置文件都会在resouces下面也就是服务器中WEB-INF/classes下面。所以我们需要配置文件路径:

 <context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0">
<!-- 配置spring的ContextLoaderListener监听器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--    设置配置文件路径--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!--    配置前端控制器--><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--        加载springmvc配置文件 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param><!--        启动服务器就创建该servlet--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--    解决中文乱码的过滤器--><filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
</web-app>

SpringMvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--    注解扫描的包 --><context:component-scan base-package="com"><!--        只扫描的注解--><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><!--    过滤的静态资源--><mvc:resources mapping="/js/" location="/js/**"></mvc:resources><mvc:resources mapping="/css/" location="/css/**"></mvc:resources><mvc:resources mapping="/imgs/" location="/imgs/**"></mvc:resources><!--配置视图解析器对象--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"><property name="prefix" value="/jsp/"></property><property name="suffix" value=".jsp"></property></bean><!--    开启注解驱动 --><mvc:annotation-driven></mvc:annotation-driven>
</beans>

Spring整合Mybatis

我们将Mybatis的配置集成的Spring的配置文件里。这种方式是最方便的!

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!--开启注解的扫描,只希望扫描service和dao,controller不需要--><context:component-scan base-package="com"><!--        配置哪些注解不扫描--><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><!--    spring 整合Mybatis框架--><!--    引入外部jdbc配置文件--><context:property-placeholder location="classpath:db.properties"></context:property-placeholder><!--    配置数据库连接池--><bean class="org.apache.ibatis.datasource.pooled.PooledDataSource" id="dataSource"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean><!--   配置 SqlSessionFactory 工厂--><bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory"><!-- 指定数据源 --><property name="dataSource" ref="dataSource"></property><!-- 自动扫描mapping.xml文件,**表示迭代查找 ,,也可在mybatis-config.xml中单独指定xml文件 --><property name="mapperLocations" value="classpath:mybatis/**/*.xml"></property></bean><!--配置mybatis扫描所在的包--><!-- 自动扫描com/dao下的所有dao接口,并实现这些接口,可直接在程序中使用dao接口,不用再获取sqlsession对象 --><bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!--        basePackage 属性是映射器接口文件的包路径。你可以使用分号或逗号 作为分隔符设置多于一个的包路径--><property name="basePackage" value="com.dao"></property></bean><!--Spring 中基于xml的声明式事务控制配置步骤1、配置事务管理器  DataSourceTransactionManager2、配置事务的通知此时我们需要导入事务的约束 tx名称空间和约束,同时也需要aop的使用tx:advice 标签配置事务通知属性:id:给事务通知起一个唯一标志transaction-manager:给事务通知提供一个事务管理器引用3、配置AOP中的通用切入点表达式4、建立切入点表达式与事务通知的对应关系5、配置事务的属性是在事务的通知tx:advice 标签内部配 <tx:attributes>配置事务的属性isolation:用于指定事务的隔离级别,默认值是DEFAULT,表示使用数据库的默认隔离级别。propagation:用于指定事务的传播行为,默认值是REQUIRED,表示一定有事务,增删改的选择。查询方法可以使用SUPPORTSread-only:用于指定事务是否只读。只有查询方法才设置为true,默认值为false,表示读写。timeout:用于指定事务的超时时间,默认值为-1,表示永不超时。如果设置了指定值,以秒为单位。rollback-for:用于指定一个异常,当产生该异常时,事务回滚,如果产生其他异常,事务不回滚。没有默认值。表示任何异常都回滚。no-rollback-for:用于指定一个异常,当产生该异常时,事务不回滚,产生其他异常时事务回滚。没有默认值。表示任何异常都回滚。--><!--    配置事务管理器--><bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager"><property name="dataSource" ref="dataSource"></property></bean><!--    配置事务的通知--><tx:advice transaction-manager="transactionManager" id="txAdvice"><tx:attributes><tx:method name="find*" read-only="true" propagation="SUPPORTS"/><tx:method name="save*" propagation="REQUIRED"/></tx:attributes></tx:advice><!--    配置AOP--><aop:config><!--        配置切入点表达式--><aop:pointcut id="pt1" expression="execution(* com.servcie.impl.*.*(..))"></aop:pointcut><!--        建立切入点表达式与事务通知的对应关系--><aop:advisor advice-ref="txAdvice" pointcut-ref="pt1"></aop:advisor></aop:config>
</beans>

代理接口的配置accountDaoimpl.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dao.AccountDao"><select id="findAll" resultType="com.domain.Account">select *from account;</select><insert id="saveAccount" parameterType="com.domain.Account">insert into account (name,money) values(#{name},#{money});</insert>
</mapper>

其余代码

表现层

package com.controller;import com.domain.Account;
import com.servcie.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;import javax.annotation.Resource;
import java.util.List;/*** 账户表现层*/
@Controller
@RequestMapping("/account")
public class AccountController {@Resource(name = "accountService") // @Autowiredprivate AccountService accountService;@RequestMapping("/findAll")public String findAll(Model model) {System.out.println("表现层:查询所有账户");final List<Account> accounts = accountService.findAll();
//        System.out.println(accounts);model.addAttribute("accounts", accounts);return "list";}@RequestMapping("saveAccount")public String saveAccount(Account account, Model model) {accountService.saveAccount(account);final List<Account> accounts = accountService.findAll();model.addAttribute("accounts", accounts);return "list";}}

业务层

package com.servcie.impl;import com.dao.AccountDao;
import com.domain.Account;
import com.servcie.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service("accountService")
public class AccountServiceimpl implements AccountService {@Autowiredprivate AccountDao accountDao;@Overridepublic List<Account> findAll() {System.out.println("业务层:查询所有账户信息");final List<Account> all = accountDao.findAll();return all;}@Overridepublic void saveAccount(Account account) {System.out.println("业务层:保存账户");accountDao.saveAccount(account);}
}

持久层

package com.dao;import com.domain.Account;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;import java.util.List;/*** 账户的dao接口*/
@Repository
public interface AccountDao {//查询所有账户
//    @Select("select *from Account")List<Account> findAll();//保存账户
//    @Insert("insert into account (name,money) values(#{name},#{money})")void saveAccount(Account account);
}

domain

package com.domain;import java.io.Serializable;public class Account implements Serializable {private Integer id;private String name;private Double money;@Overridepublic String toString() {return "Account{" +"id=" + id +", name='" + name + '\'' +", money=" + money +'}';}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Double getMoney() {return money;}public void setMoney(Double money) {this.money = money;}
}

查询效果展示

在这里插入图片描述

附上spring约束

spring约束

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!--开启注解的扫描,只希望扫描service和dao,controller不需要--><context:component-scan base-package="com"><!--        配置哪些注解不扫描--><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan></beans>

SpringMVC约束

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--    注解扫描的包 --><context:component-scan base-package="com"><!--        只扫描的注解--><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><!--    开启注解驱动--><mvc:annotation-driven></mvc:annotation-driven></beans>

Maven 依赖

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-oxm</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.5</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.3</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.4</version></dependency><!-- 整合Spring --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.4</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency></dependencies>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信开发3之php模板信息推送

模板信息推送&#xff1a;需要在后台开通了模板消息推送接口 PHP代码如下&#xff1a; <?php $appid"wxxxxxxxxxxxxxxxxxx"; //填写微信后台的appid $appsecret"xxxxxxxxxxxxxxxxxxxxxxxxx"; //填写微信后台的appsecret $TOKEN_URL"…

Nginx源码分析-启动初始化过程(一)

Nginx的启动初始化在src/core/nginx.c的main函数中完成&#xff0c;当然main函数是整个Nginx的入口&#xff0c;除了完成启动初始化任务以外&#xff0c;也必定是所有功能模块的入口之处。Nginx的初始化工作主要围绕一个类型为ngx_cycle_t类型的全局变量&#xff08;cycle&…

SpringBoot实现国际化

在哔哩哔哩一位up主视频中学到的&#xff01; 国际化 原理 通过Properties文件配置&#xff0c;配置完后通过Thymeleaf中的#{} 来取代原来的静态资源。例如&#xff1a; spring:# 关闭模板引擎的缓存thymeleaf:cache: falsemessages:encoding: UTF-8## 配置国际化绑定的文…

前端开发1之Node.js以及npm开发环境搭建

关于现今的前端开发&#xff0c;由于微服务架构的普及&#xff0c;前端工程师必须承担更重要的任务。现在的后端工程师无需考虑JS、Ajax和json的解析遍历&#xff0c;或许只需要处理前端请求过来的各种带参请求&#xff08;Get/Post/Patch等&#xff09;&#xff0c;目前许多前…

开源中国iOS客户端学习——(八)网络通信AFNetworking类库

AFNetworking是一个轻量级的iOS网络通信类库&#xff0c;继ASI类库不在更新之后开发者们有一套不错选择&#xff1b; AFNetworking类库和使用教程: https://github.com/AFNetworking/AFNetworking 如果想深入研究有官方文档介绍:http://afnetworking.github.com/AFNetworking/ …

OpenGL 入门第一课 视窗以及三角形

请查看课件教程 下面是我粗劣画的过程图 下面是课件中的过程图 下面是未使用索引缓冲对象&#xff08;EBO&#xff09;的 #define GLEW_STATIC // 这个一定要加不然报错 静态链接库 #include<iostream> #include<GL/glew.h> #include<GLFW/glfw3.h> usin…

玩玩短视频平台和网课平台开发1——腾讯云对象储存COS的初步配置

近一两年来&#xff0c;抖音、快手等以短视频为手段的社交工具红遍了大江南北&#xff0c;腾讯也推出了"微视"平台&#xff0c;希望分一杯羹&#xff1b;传统的直播平台如&#xff1a;斗鱼直播、虎牙直播就更不用说了&#xff0c;甚至涌现了许多主打"知识付费&q…

解决从其它搜索引擎不能直接访问百度页面的问题

由于最近baidu和360又开始互咬了&#xff0c;从其它搜索引擎搜索到百度的结果时又变不能直接访问了&#xff0c;会出现如下界面。 需要手动点击这个链接才能访问&#xff0c;让人非常不爽。因此我写了一个chrome扩展解决这个问题&#xff0c;原理很简单&#xff1a;当遇到这种需…

基于JAVA的校园电商物流云平台 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 商品数据模块2.3 快递公司模块2.4 物流订单模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 商品表3.2.2 快递公司表3.2.3 物流订单表 四、系统展示五、核心代码5.1 查询商品5.2 查询快递公司5.3 查…

OpenGL Sharders(着色器) 入门

着色器(Shader)是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。 // 顶点着色器 #version 330 core // 0号栏位读取顶点坐标 layout (location 0) in vec3 aPos; //1号栏位读取颜色颜色 …

玩玩机器学习1——ubuntu16.04 64位安装TensorFlow GPU+python3+cuda8.0+cudnn8.0

如今的机器学习运算大多数都是利用gpu进行&#xff0c;包括很大大型游戏&#xff0c;比特币的开采&#xff0c;都离不开GPU的运算&#xff0c;GPU已成为大型运算能力的主要硬件。 大名鼎鼎的机器学习开源框架&#xff0c;如TensorFlow和Caffe&#xff0c;Caffe2都建议使用GPU作…

[linux]Ubuntu12.1下打开terminal的方式

有的人比较习惯使用terminal&#xff0c;喜欢简单的文本窗口&#xff0c;刚使用ubuntu可能还不习惯&#xff0c;这里给出几种打开terminal的方法&#xff1a;1 图形界面中图一就是那个左上角红色方框里的图标&#xff0c;点击后搜索terminal就好了。图二2 使用快捷键Ctrl Alt …

OpenGL 自定义着色器(Shaders)

自定义着色器类 声明 #pragma once#include<string>class Shaders { public:Shaders(const char* vertexPath, const char* fragmentPath);~Shaders();std::string vertexString;std::string fragmentString;const char* vertexSource;const char* fragmentSource;unsi…

微信开发之——Ubuntu Apache2的https域名配置

我的网站是腾讯云服务器的&#xff0c;根据官网的SSL证书安装配置指示&#xff1a;https://cloud.tencent.com/document/product/400/4143 下载腾讯颁发的SSL证书&#xff1a;有3个文件&#xff0c;分别是&#xff1a; 1_root_bundle.crt&#xff0c;2_www.域名.com.crt&…

《统一沟通-微软-技巧》-20-Lync 2010如何在我的联系人列表中添加非联盟联系人...

Blog:http://dynamic.blog.51cto.com MSN:LiuJinFengmsn.com QQ:316190099如果加:A&#xff0e; 内部Lync用户:输入-英文名输入-中文名输入-中文名/英文名中包括的部分字符B&#xff0e; 联盟Lync用户:输入:邮件地址C&#xff0e; 非 Lync用户:在Outlook新建联系人让Lync与Outl…

texture 纹理(贴图)

纹理 纹理是一个2D图片&#xff08;甚至也有1D和3D的纹理&#xff09;&#xff0c;它可以用来添加物体的细节。 这是两张照片叠加的效果 由下面两张叠加而成 源代码 shaders类在自定义着色器 中有完整的源代码。 下边我们使用stb_image.h来解析图片。 #define GLEW_STATI…

如何进行防SQL注入?

1、过滤掉一些常见的数据库操作关键字&#xff1a;select,insert,update,delete,and,*等 或者通过系统函数&#xff1a;addslashes(需要被过滤的内容)来进行过滤。 2、在PHP配置文件中 Register_globalsoff;设置为关闭状态 //作用将注册全局变量关闭。 比如&#xff1a;接收POS…

微信开发4——PHP实现PC扫码授权登陆获取用户信息

首先须要申请,必须企业,个体工商户,媒体等&#xff0c;微信开放平台申请地址 https://open.weixin.qq.com/&#xff0c;要交300多的费用才能开通 1&#xff0c;编写入口&#xff1a;微信开放平台的扫码登陆开放的接口可以自动生成PC扫码页面&#xff0c;你得到了官方通过审核的…

计算机组成原理和体系结构----软考(到处copy)

计算机组成原理和体系结构数据的表示n进制转十进制十进制转n进制 使用短除法二进制转八进制和十六进制原码、反码、补码以及移码浮点数运算计算机结构计算机体系结构分类 - FlynnCISC 和 RISC流水线流水线计算流水线时间计算流水线吞吐率计算流水线的加速比计算流水线的效率计算…

一个笔试题

题目&#xff1a;输入一个数N&#xff0c;计算1、2、3、...、N这N个数进行排列组合&#xff0c;使得这个数列任意两个相邻数之和为素数&#xff0c;求结果T&#xff0c;T为这样的数列的个数&#xff1b; private static final Map<Integer, Boolean> SUSHU new HashMap&…