淘宝网站建设方式建网站企划书

news/2025/9/27 6:42:40/文章来源:
淘宝网站建设方式,建网站企划书,企业策划工作内容,动漫制作专业专科一#xff0c;spring集成Mybatis的概念 Spring 整合 MyBatis 是将 MyBatis 数据访问框架与 Spring 框架进行集成#xff0c;以实现更便捷的开发和管理。在集成过程中#xff0c;Spring 提供了许多特性和功能#xff0c;如依赖注入、声明式事务管理、AOP 等 它所带来给我们的…一spring集成Mybatis的概念 Spring 整合 MyBatis 是将 MyBatis 数据访问框架与 Spring 框架进行集成以实现更便捷的开发和管理。在集成过程中Spring 提供了许多特性和功能如依赖注入、声明式事务管理、AOP 等 它所带来给我们的好处(优点)有哪些(大致5点) 便捷的配置管理     通过 Spring 的 XML 配置文件我们可以集中管理 MyBatis 的配置信息、数据源设置、事务管理等。这样可以降低配置复杂度并使配置更加灵活和可维护。 轻松的事务管理      通过整合 Spring 的事务管理机制我们可以简单地配置声明式事务避免手动编写繁琐的事务代码。当我们调用 MyBatis 的数据库操作时自动实现事务的开启、提交或回滚。 松耦合的编程模型       通过 Spring 的依赖注入DI机制我们可以将 DAO 接口的实例注入到业务层中而无需直接实例化和管理 DAO 对象。这种松耦合的编程模型提高了代码的可读性和可维护性同时也支持面向接口的编程。 兼容其他 Spring 生态系统组件       因为 MyBatis 集成到 Spring 中可以很方便地与其他 Spring 组件进行集成如 Spring MVC、Spring Security、Spring Boot 等。以实现全栈的应用开发并享受 Spring 提供的众多特性和功能。 更好的测试支持     综上所述Spring 整合 MyBatis 可以提供更便捷可靠的数据库访问方式降低开发复杂度并利用 Spring 框架的诸多特性优势提高代码质量和可维护性同时也能更好地配合其他 Spring 相关组件使用构建出完善的应用系统。 二spring整合Mybatis 创建一个mudule项目并修改其中的pom.xml依赖文件因为需要下载相关的插件要连接网络 2.1 导入的pom.xml依赖 ?xml version1.0 encodingUTF-8?project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.LiuBing/groupIdartifactIdLiuBing_ssm/artifactIdversion1.0-SNAPSHOT/versionpackagingwar/packagingnameLiuBing_ssm Maven Webapp/name!-- FIXME change it to the projects website --urlhttp://www.example.com/urlpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingmaven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.targetmaven.compiler.plugin.version3.7.0/maven.compiler.plugin.version!--添加jar包依赖--!--1.spring 5.0.2.RELEASE相关--spring.version5.0.2.RELEASE/spring.version!--2.mybatis相关--mybatis.version3.4.5/mybatis.version!--mysql--mysql.version5.1.44/mysql.version!--pagehelper分页jar依赖--pagehelper.version5.1.2/pagehelper.version!--mybatis与spring集成jar依赖--mybatis.spring.version1.3.1/mybatis.spring.version!--3.dbcp2连接池相关 druid--commons.dbcp2.version2.1.1/commons.dbcp2.versioncommons.pool2.version2.4.3/commons.pool2.version!--4.log日志相关--log4j2.version2.9.1/log4j2.version!--5.其他--junit.version4.12/junit.versionservlet.version4.0.0/servlet.versionlombok.version1.18.2/lombok.version/propertiesdependencies!--1.spring相关--dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-orm/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-tx/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-aspects/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion${spring.version}/version/dependency!--2.mybatis相关--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion${mybatis.version}/version/dependency!--mysql--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion${mysql.version}/version/dependency!--pagehelper分页插件jar包依赖--dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper/artifactIdversion${pagehelper.version}/version/dependency!--mybatis与spring集成jar包依赖--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion${mybatis.spring.version}/version/dependency!--3.dbcp2连接池相关--dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-dbcp2/artifactIdversion${commons.dbcp2.version}/version/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactIdversion${commons.pool2.version}/version/dependency!--4.log日志相关依赖--!--核心log4j2jar包--dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion${log4j2.version}/version/dependencydependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-api/artifactIdversion${log4j2.version}/version/dependency!--web工程需要包含log4j-web非web工程不需要--dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-web/artifactIdversion${log4j2.version}/version/dependency!--5.其他--dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion${junit.version}/version !-- scopetest/scope--/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion${servlet.version}/versionscopeprovided/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion${lombok.version}/versionscopeprovided/scope/dependencydependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter/artifactIdversionRELEASE/versionscopecompile/scope/dependency/dependenciesbuildfinalNameLiuBing_ssm/finalNameresources!--解决mybatis-generator-maven-plugin运行时没有将XxxMapper.xml文件放入target文件夹的问题--resourcedirectorysrc/main/java/directoryincludesinclude**/*.xml/include/includes/resource!--解决mybatis-generator-maven-plugin运行时没有将jdbc.properites文件放入target文件夹的问题--resourcedirectorysrc/main/resources/directoryincludesincludejdbc.properties/includeinclude*.xml/include/includes/resource/resourcespluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion${maven.compiler.plugin.version}/versionconfigurationsource${maven.compiler.source}/sourcetarget${maven.compiler.target}/targetencoding${project.build.sourceEncoding}/encoding/configuration/pluginplugingroupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-maven-plugin/artifactIdversion1.3.2/versiondependencies!--使用Mybatis-generator插件不能使用太高版本的mysql驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion${mysql.version}/version/dependency/dependenciesconfigurationoverwritetrue/overwrite/configuration/pluginpluginartifactIdmaven-clean-plugin/artifactIdversion3.1.0/version/plugin!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --pluginartifactIdmaven-resources-plugin/artifactIdversion3.0.2/version/pluginpluginartifactIdmaven-compiler-plugin/artifactIdversion3.8.0/version/pluginpluginartifactIdmaven-surefire-plugin/artifactIdversion2.22.1/version/pluginpluginartifactIdmaven-war-plugin/artifactIdversion3.2.2/version/pluginpluginartifactIdmaven-install-plugin/artifactIdversion2.5.2/version/pluginpluginartifactIdmaven-deploy-plugin/artifactIdversion2.8.2/version/plugin/plugins/build /project2.2 XML文件配置 注意该配置文件根据自身情况来 1 spring-context.xml : spring框架与mybatis整合配置文件的加载到spring的上下文      2 spring-mybatis.xml 数据源    3 generatorConfig.xml  配置代码生成器        4 log4j2.xml 日志文件         5  jdbc.properties  配置数据库连接 创建spring-mybatis.xml文件并配置 注意配置的时候要注意包名的大小写问题以防万一生成模型层层代码时会有错误 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/context xmlns:txhttp://www.springframework.org/schema/txxmlns:aophttp://www.springframework.org/schema/aopxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd!--1. 注解式开发 --!-- 注解驱动 --context:annotation-config/!-- 用注解方式注入bean并指定查找范围com.javaxl.ssm及子子孙孙包--context:component-scan base-packagecom.Bing/context:property-placeholder locationclasspath:jdbc.properties/bean iddataSource classorg.apache.commons.dbcp2.BasicDataSourcedestroy-methodcloseproperty namedriverClassName value${jdbc.driver}/property nameurl value${jdbc.url}/property nameusername value${jdbc.username}/property namepassword value${jdbc.password}/!--初始连接数--property nameinitialSize value20/!--最大活动连接数--property namemaxTotal value100/!--最大空闲连接数--property namemaxIdle value50/!--最小空闲连接数--property nameminIdle value10/!--设置为-1时如果没有可用连接连接池会一直无限期等待直到获取到连接为止。--!--如果设置为N毫秒则连接池会等待N毫秒等待不到则抛出异常--property namemaxWaitMillis value-1//bean!--4. spring和MyBatis整合 --!--1) 创建sqlSessionFactory--bean idsqlSessionFactory classorg.mybatis.spring.SqlSessionFactoryBean!-- 指定数据源 --property namedataSource refdataSource/!-- 自动扫描XxxMapping.xml文件**任意路径 --property namemapperLocations valueclasspath*:com/Bing/**/mapper/*.xml/!-- 指定别名 --property nametypeAliasesPackage valuecom/LiuBing/**/model/!--配置pagehelper插件--property namepluginsarraybean classcom.github.pagehelper.PageInterceptorproperty namepropertiesvaluehelperDialectmysql/value/property/bean/array/property/bean!--2) 自动扫描com/javaxl/ssm/**/mapper下的所有XxxMapper接口(其实就是DAO接口)并实现这些接口--!-- 即可直接在程序中使用dao接口不用再获取sqlsession对象--bean classorg.mybatis.spring.mapper.MapperScannerConfigurer!--basePackage 属性是映射器接口文件的包路径。--!--你可以使用分号或逗号 作为分隔符设置多于一个的包路径--property namebasePackage valuecom/Bing/**/mapper/property namesqlSessionFactoryBeanName valuesqlSessionFactory//beanbean idtransactionManager classorg.springframework.jdbc.datasource.DataSourceTransactionManagerproperty namedataSource refdataSource //beantx:annotation-driven transaction-managertransactionManager /aop:aspectj-autoproxy/ /beansspring-context.xml 配置 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd!--spring框架与mybatis整合配置文件的加载到spring的上下文 --import resourcespring-mybatis.xml/import /beans generatorConfig.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE generatorConfiguration PUBLIC -//mybatis.org//DTD MyBatis Generator Configuration 1.0//ENhttp://mybatis.org/dtd/mybatis-generator-config_1_0.dtd generatorConfiguration!-- 引入配置文件 --properties resourcejdbc.properties/!--指定数据库jdbc驱动jar包的位置--classPathEntry locationD:\\tools\\apache-maven-3.5.0-bin\\mvn_repository\\mysql\\mysql-connector-java\5.1.44/!-- 一个数据库一个context --context idinfoGuardian!-- 注释 --commentGeneratorproperty namesuppressAllComments valuetrue/!-- 是否取消注释 --property namesuppressDate valuetrue/ !-- 是否生成注释代时间戳 --/commentGenerator!-- jdbc连接 --jdbcConnection driverClass${jdbc.driver}connectionURL${jdbc.url} userId${jdbc.username} password${jdbc.password}/!-- 类型转换 --javaTypeResolver!-- 是否使用bigDecimal false可自动转化以下类型Long, Integer, Short, etc. --property nameforceBigDecimals valuefalse//javaTypeResolver!-- 01 指定javaBean生成的位置 --!-- targetPackage指定生成的model生成所在的包名 --!-- targetProject指定在该项目下所在的路径 --javaModelGenerator targetPackagecom.Bing.modeltargetProjectsrc/main/java!-- 是否允许子包即targetPackage.schemaName.tableName --property nameenableSubPackages valuefalse/!-- 是否对model添加构造函数 --property nameconstructorBased valuetrue/!-- 是否针对string类型的字段在set的时候进行trim调用 --property nametrimStrings valuefalse/!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法只有构造方法 --property nameimmutable valuefalse//javaModelGenerator!-- 02 指定sql映射文件生成的位置 --sqlMapGenerator targetPackagecom.Bing.mappertargetProjectsrc/main/java!-- 是否允许子包即targetPackage.schemaName.tableName --property nameenableSubPackages valuefalse//sqlMapGenerator!-- 03 生成XxxMapper接口 --!-- typeANNOTATEDMAPPER,生成Java Model 和基于注解的Mapper对象 --!-- typeMIXEDMAPPER,生成基于注解的Java Model 和相应的Mapper对象 --!-- typeXMLMAPPER,生成SQLMap XML文件和独立的Mapper接口 --javaClientGenerator targetPackagecom.Bing.mappertargetProjectsrc/main/java typeXMLMAPPER!-- 是否在当前路径下新加一层schema,false路径com.oop.eksp.user.model true:com.oop.eksp.user.model.[schemaName] --property nameenableSubPackages valuefalse//javaClientGenerator!-- 配置表信息 --!-- schema即为数据库名 --!-- tableName为对应的数据库表 --!-- domainObjectName是要生成的实体类 --!-- enable*ByExample是否生成 example类 --!--table schema tableNamet_book domainObjectNameBook--!--enableCountByExamplefalse enableDeleteByExamplefalse--!--enableSelectByExamplefalse enableUpdateByExamplefalse--!--lt;!ndash; 忽略列不生成bean 字段 ndash;gt;--!--lt;!ndash; ignoreColumn columnFRED / ndash;gt;--!--lt;!ndash; 指定列的java数据类型 ndash;gt;--!--lt;!ndash; columnOverride columnLONG_VARCHAR_FIELD jdbcTypeVARCHAR / ndash;gt;--!--/table--table schema tableNamet_mvc_book domainObjectNameBookenableCountByExamplefalse enableDeleteByExamplefalseenableSelectByExamplefalse enableUpdateByExamplefalse!-- 忽略列不生成bean 字段 --!-- ignoreColumn columnFRED / --!-- 指定列的java数据类型 --!-- columnOverride columnLONG_VARCHAR_FIELD jdbcTypeVARCHAR / --/table/context /generatorConfigurationlog4j2.xml ?xml version1.0 encodingUTF-8?!-- status : 指定log4j本身的打印日志的级别.ALL Trace DEBUG INFO WARN ERROR FATAL OFF。 monitorInterval : 用于指定log4j自动重新配置的监测间隔时间单位是s,最小是5s. -- Configuration statusWARN monitorInterval30Properties!-- 配置日志文件输出目录 ${sys:user.home} --Property nameLOG_HOME/root/workspace/lucenedemo/logs/Propertyproperty nameERROR_LOG_FILE_NAME/root/workspace/lucenedemo/logs/error/propertyproperty nameWARN_LOG_FILE_NAME/root/workspace/lucenedemo/logs/warn/propertyproperty namePATTERN%d{yyyy-MM-dd HH:mm:ss.SSS} [%t-%L] %-5level %logger{36} - %msg%n/property/PropertiesAppenders!--这个输出控制台的配置 --Console nameConsole targetSYSTEM_OUT!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) --ThresholdFilter leveltrace onMatchACCEPTonMismatchDENY /!-- 输出日志的格式 --!-- %d{yyyy-MM-dd HH:mm:ss, SSS} : 日志生产时间 %p : 日志输出格式 %c : logger的名称 %m : 日志内容即 logger.info(message) %n : 换行符 %C : Java类名 %L : 日志输出所在行数 %M : 日志输出所在方法名 hostName : 本地机器名 hostAddress : 本地ip地址 --PatternLayout pattern${PATTERN} //Console!--文件会打印出所有信息这个log每次运行程序会自动清空由append属性决定这个也挺有用的适合临时测试用 --!--append为TRUE表示消息增加到指定文件中false表示消息覆盖指定的文件内容默认值是true --File namelog fileNamelogs/test.log appendfalsePatternLayoutpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n //File!-- 这个会打印出所有的info及以下级别的信息每次大小超过size 则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩作为存档 --RollingFile nameRollingFileInfo fileName${LOG_HOME}/info.logfilePattern${LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log!--控制台只输出level及以上级别的信息onMatch其他的直接拒绝onMismatch --ThresholdFilter levelinfo onMatchACCEPTonMismatchDENY /PatternLayoutpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n /Policies!-- 基于时间的滚动策略interval属性用来指定多久滚动一次默认是1 hour。 modulatetrue用来调整时间比如现在是早上3aminterval是4那么第一次滚动是在4am接着是8am12am...而不是7am. --!-- 关键点在于 filePattern后的日期格式以及TimeBasedTriggeringPolicy的interval 日期格式精确到哪一位interval也精确到哪一个单位 --!-- log4j2的按天分日志文件 : info-%d{yyyy-MM-dd}-%i.log --TimeBasedTriggeringPolicy interval1modulatetrue /!-- SizeBasedTriggeringPolicy:Policies子节点 基于指定文件大小的滚动策略size属性用来定义每个日志文件的大小. --!-- SizeBasedTriggeringPolicy size2 kB / --/Policies/RollingFileRollingFile nameRollingFileWarn fileName${WARN_LOG_FILE_NAME}/warn.logfilePattern${WARN_LOG_FILE_NAME}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.logThresholdFilter levelwarn onMatchACCEPTonMismatchDENY /PatternLayoutpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n /PoliciesTimeBasedTriggeringPolicy /SizeBasedTriggeringPolicy size2 kB //Policies!-- DefaultRolloverStrategy属性如不设置则默认为最多同一文件夹下7个文件这里设置了20 --DefaultRolloverStrategy max20 //RollingFileRollingFile nameRollingFileError fileName${ERROR_LOG_FILE_NAME}/error.logfilePattern${ERROR_LOG_FILE_NAME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd-HH-mm}-%i.logThresholdFilter levelerror onMatchACCEPTonMismatchDENY /PatternLayoutpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n /Policies!-- log4j2的按分钟 分日志文件 : warn-%d{yyyy-MM-dd-HH-mm}-%i.log --TimeBasedTriggeringPolicy interval1modulatetrue /!-- SizeBasedTriggeringPolicy size10 MB / --/Policies/RollingFile/Appenders!--然后定义logger只有定义了logger并引入的appenderappender才会生效 --Loggers!--过滤掉spring和mybatis的一些无用的DEBUG信息 --logger nameorg.springframework levelINFO/loggerlogger nameorg.mybatis levelINFO/logger!-- 第三方日志系统 --logger nameorg.springframework levelERROR /logger nameorg.hibernate levelERROR /logger nameorg.apache.struts2 levelERROR /logger namecom.opensymphony.xwork2 levelERROR /logger nameorg.jboss levelERROR /!-- 配置日志的根节点 --root levelallappender-ref refConsole /appender-ref refRollingFileInfo /appender-ref refRollingFileWarn /appender-ref refRollingFileError //root/Loggers/Configuration jdbc.properties  jdbc.drivercom.mysql.jdbc.Driver jdbc.urljdbc:mysql://localhost/mybatis_ssm?useUnicodetruecharacterEncodingUTF-8useSSLfalse jdbc.usernameroot jdbc.password123456 2.3 利用mybatis逆向工程生成模型层层代码 注意双击等待生成即可生成完毕之后不要点了以防万一生成两遍BookMapper模型代码 双击之后等待生成模型层代码等待完毕之后生成的类  2.4 注解式 实体 Data //相当于set get toString方法 AllArgsConstructor //有参构造器 NoArgsConstructor //无参构造器 public class Book {private Integer bid;private String bname;private Float price; 编写Junit测试类 上面用到的三种注解方法  Autowired      用于自动装配依赖关系。通过该注解可以将一个对象自动注入到另一个对象中省去了手动配置依赖关系的步骤。  RunWith     是 JUnit 框架中的一个注解它用于指定运行测试类的运行器Runner。运行器是 JUnit 框架的一部分它负责执行测试类中的测试方法并提供额外的功能和扩展。  ContextConfiguration       是 Spring 框架中的一个注解它用于指定测试类或测试方法运行时的 Spring 上下文配置。它告诉测试框架在运行测试之前加载指定的 Spring 配置文件或配置类并创建相应的 Spring 上下文   运行结果 三、AOP整合pageHelper分页插件 1创建一个AOP切面类 package com.Bing.aspect;import com.Bing.util.PageBean; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component;import java.util.List;/*** Name BingBing* company zking cy* create 2023-08-25-18:37*/ Aspect//代表当前类为切面类 Component//代表当前类交给Spring进行管理 public class PageAspect {Around(execution(* *..*Biz.*Page(..)))public Object invoke(ProceedingJoinPoint args) throws Throwable {PageBean pageBean null;//获取目标方法中的所有参数Object[] arg args.getArgs();for (Object param : arg){if(param instanceof PageBean){pageBean (PageBean) param;break;}}if (pageBean ! null pageBean.isPagination())PageHelper.startPage(pageBean.getPage(), pageBean.getRows());//执行目标方法Object lst args.proceed();if (pageBean ! null pageBean.isPagination()) {PageInfo info new PageInfo ((List) lst);pageBean.setTotal((int) info.getTotal());}return lst;} }上面代码其中的代码解释 Around(execution(* *..*xxx.*xxx(..))) 表达式解析   Around(execution(* *..*Biz.*Pager2(..))) 这个表达式是一个切点表达式用于定义一个切点以便在使用 AspectJ 或 Spring AOP 进行方法拦截时进行匹配。    Around这是一个通知类型的注解表示在目标方法执行前后都会执行通知逻辑。   execution(* *..* Service.*Pager(..))这是切点表达式的一部分用于匹配符合条件的方法。具体解释如下 execution表示匹配方法的执行。 *表示匹配任意返回类型。 *..*表示匹配任意包名和子包名。 Biz表示匹配包含 Biz 字符串的类名。 *pagePager2表示匹配以 pagePager2 结尾的方法名。 (..)表示匹配任意参数列表。           综合起来这个切点表达式的含义是匹配任意返回类型、任意包名和子包名下的包含 Service 字符串的类中以 Pager 结尾的方法并在这些方法执行前后执行通知逻辑。 编写测试 Testpublic void listPage() {Book book new Book();PageBean pageBean new PageBean();pageBean.setPage(2);pageBean.setRows(13);book.setBname(圣墟);this.bookBiz.listPage(book,pageBean).forEach(System.out::println);} 运行结果

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

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

相关文章

上海骏域网站建设专家从化企业网站建设

俗话说“好记性不如烂笔头”,编程的海洋如此的浩大,养成做笔记的习惯是成功的一步! 此笔记主要是antlr4.13版本的笔记,并且笔记都是博主自己一字一字编写和记录,有错误的地方欢迎大家指正。 一、基础概念:…

正能量网站入口地址网站建设属于哪个行业分类

PHP 循环 - While 循环循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。PHP 循环在您编写代码时,您经常需要让相同的代码块一次又一次地重复运行。我们可以在代码中使用循环语句来完成这个任务。在 PHP 中,提供了下列循环语…

国外直播做游戏视频网站有哪些老实人做网站

React 开发问题积累1. 修改antd的组件样式2. antd级联选择框(后台数据渲染)1. 修改antd的组件样式 问题:直接修改样式好像不起作用,直接在组件上加style行内样式也不生效 方案:用 :global样式穿透 全局样式直接使用 …

贵州网站建设设计公司杭州网站优化平台

目录 keepalived概述 vrrp工作原理 keepalived体系主要的模块及其作用 模块 core模块 vrrp模块 check模块 作用 keepalived工作原理 keepalived和lvs-DR实验 keepalived概述 keepalived高可用应用(健康检查,故障切换) 节点服务器…

网站服务器错误403wordpress电影下载

我们首先来看一下数电模电在单片机中的应用。数电知识在单片机中主要解决各种数字信号的处理、运算,如数制转换、数据运算等。模电知识在单片机中主要解决各种模拟信号的处理问题,如采集光照强度、声音的分贝、温度等模拟信号。而数电、模电的相互转换就…

国内大中型网站建设知名公司网站开发课设心得

目录 原因分析一 原因分析二 原因分析三 第一次使用 MySQL Command Line Client 有可能输入密码后一按下回车键,程序窗口就自动关闭,出现闪退现象。本节主要分析产生闪退现象的原因以及如何处理这种情况。 原因分析一 首先可以查看程序默认执行文件…

网站优化外链个人网站需要什么页面

组合模式(Composite) 组合模式是一种结构型模式,它可以将对象组合成树状结构,用来区分部分和整体的层次机构,又叫部分整体模式 角色 组件:组合中所有对象的通用接口,可以是抽象类或者接口&…

C. Strange Function

https://codeforces.com/problemset/problem/1542/C 题意:给定数字n,对于所有i∈[1, n], 找出第一个不被n整除的正数,计算这些正数的和。 思路:如果i是x的第一个不能整除的正整数,那么i - 1, i - 2,...1都能被x整…

剑指offer-33、丑数

题⽬描述 把只包含质因⼦ 2 、 3 和 5 的数称作丑数( Ugly Number )。例如 6 、 8 都是丑数,但 14 不是,因为它包含质因⼦ 7 。 习惯上我们把 1 当做是第⼀个丑数。求按从⼩到⼤的顺序的第 N 个丑数。 如果 n = 9 …

C#操作Excel核心要点:告别手动,拥抱自动化

作为.NET开发者,我们经常会遇到需要与Excel文件打交道的场景:生成报表、批量处理数据、进行复杂的数据分析等。手动操作不仅效率低下,而且容易出错。掌握C#操作Excel的核心技能,能让我们从重复劳动中解放出来。 本…

250925

目录JT-JY4T4S1-1JT-JY4T4S1-2FT-(JY4T1S1&JY4T2S1&JY4T3S1&CD3s&VOAC3s) JT-JY4T4S1-1 JT-JY4T4S1-2 FT-(JY4T1S1&JY4T2S1&JY4T3S1&CD3s&VOAC3s)

云平台qcow2镜像的制作

云平台qcow2镜像的制作 一、基础准备 cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)安装依赖包 yum groupinstall -y "Virtualization*" yum install -y libguestfs-tools-c.x86_64下载驱动…

国外做外汇网站交流怒江州城乡建设局网站

69.题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 先看一下第一种实现方式 nmax 50 n int(input(请输入总人数:)) num [] f…

使用责任链模式简化if-else代码示例

使用责任链模式简化if-else代码示例Posted on 2025-09-25 08:54 刚泡 阅读(0) 评论(0) 收藏 举报使用责任链模式简化if-else代码示例:1 package com.siasun.java8.function.responsibility;2 3 import java.math…

织梦手机网站模板下载备份wordpress到百度云

介绍 在很多应用中,会出现点击按钮出现水波纹的特效。 效果图预览 使用说明 进入页面,点击按钮,触发水波纹动画。再次点击按钮,停止水波纹动画。 实现思路 本例涉及的关键特性和实现方案如下: 要实现存在两个连续…

hf 下载模型

hf 下载模型huggingface-cli download --resume-download stable-diffusion-v1-5/stable-diffusion-v1-5 --local-dir .

SQLAlchemy -> Base.metadata.create_all(engine )详解 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

漂亮购物网站欣赏国外网站开发技术现状

UE4_材质节点 2017-12-07 13:56 跑九宫格 跑UV 评论(0)

使用Function Interface简化if-else代码示例

使用Function Interface简化if-else代码示例Posted on 2025-09-25 08:52 刚泡 阅读(0) 评论(0) 收藏 举报使用表驱动的方法,利用Function Interface优化If-else的示例代码:1 package com.siasun.java8.function…

南京网站建设企业装修网站建设策划方案

DataStream API 将你的应用构建为一个 job graph,并附加到 StreamExecutionEnvironment 。当调用 env.execute() 时此 graph 就被打包并发送到 JobManager 上,后者对作业并行处理并将其子任务分发给 Task Manager 来执行。每个作业的并行子任务将在 task…