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

河南省建设厅网站无事故证明wordpress微信付费

河南省建设厅网站无事故证明,wordpress微信付费,四川省特种作业证查询,怎么创建免费网站学习目标基于SpringBoot框架的程序开发步骤熟练使用SpringBoot配置信息修改服务器配置基于SpringBoot的完成SSM整合项目开发一、SpringBoot简介1. 入门案例问题导入SpringMVC的HelloWord程序大家还记得吗#xff1f;SpringBoot是由Pivotal团队提供的全新框架#xff0c;其设计…学习目标基于SpringBoot框架的程序开发步骤熟练使用SpringBoot配置信息修改服务器配置基于SpringBoot的完成SSM整合项目开发一、SpringBoot简介1. 入门案例问题导入SpringMVC的HelloWord程序大家还记得吗SpringBoot是由Pivotal团队提供的全新框架其设计目的是用来简化Spring应用的初始搭建以及开发过程原生开发SpringMVC程序过程1.1 入门案例开发步骤环境准备①创建新模块选择Spring初始化并配置模块相关基础信息 ②选择当前模块需要使用的技术集 ③开发控制器类RestController public class Controller01 {RequestMapping(/sayHi)public String sayHi(){System.out.println(hi...);return hi ... springboot...;} }④运行自动生成的Application类访问页面重新启动最简SpringBoot程序所包含的基础文件?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 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.1/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.itheima/groupIdartifactIddemo1_helloworld/artifactIdversion0.0.1-SNAPSHOT/versionnamedemo1_helloworld/namedescriptionDemo project for Spring Boot/descriptionpropertiesjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project package com.itheima;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;/*/*SpringBootApplication:1. 表示这个类是一个springboot应用程序的入口类。2. 要想让程序启动只需要在main方法里面写上这样的一句话SpringApplication.run(当前类的字节码对象, args);3. 拓展3.1 springboot项目启动的时候默认会扫描启动类所在的位置以及它后续的所有子包。3.2 查找到类里面打的注解 Controller , Service , RequestMapping.3.3 springApplication.run 传递进去当前类的字节码对象也是可以确定当前这个启动器它的包是哪个*/ SpringBootApplication public class Demo1HelloworldApplication {public static void main(String[] args) {SpringApplication.run(Demo1HelloworldApplication.class, args);}} Spring程序与SpringBoot程序对比注意事项基于idea开发SpringBoot程序需要确保联网且能够加载到程序框架结构1.2 基于SpringBoot官网创建项目保存到桌面解压完之后 用idea打开他因为用到了Mysql 所以得配置数据库已经启动1.3 SpringBoot项目快速启动① 对SpringBoot项目打包执行Maven构建指令package② 执行启动指令java -jar ava -jar demo1_helloworld-0.0.1-SNAPSHOT.jar # 项目的名称根据实际情况修改例子注意事项jar支持命令行启动需要依赖maven插件支持请确认打包时是否具有SpringBoot对应的maven插件。 buildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build如果没有这个依赖maven插件 打包就只有4k左右这个时候跟本运行不了2. SpringBoot概述问题导入学习了SpringBoot入门案例之后感觉对比SpringMVC哪一个更加方便简洁SpringBoot是由Pivotal团队提供的全新框架其设计目的是用来简化Spring应用的初始搭建以及开发过程Spring程序缺点配置繁琐依赖设置繁琐SpringBoot程序优点自动配置起步依赖简化依赖配置辅助功能内置服务器……28行到225行 properties/properties226行 到2737行 dependencyManagement /dependencyManagement 2.1 起步依赖starterSpringBoot中常见项目名称定义了当前项目使用的所有项目坐标以达到减少依赖配置的目的可以认为这个起步依赖相当于一个开关 我们主要用了这个东西 就相当用了他的全套功能 !--starter1. 在springboot的依赖里面很常见2. 一般会称之为起步依赖3. 所谓起步依赖就是说 只要导入这个起步依赖起步依赖的背后会包含着一大堆依赖--dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesparent所有SpringBoot项目要继承的项目定义了若干个坐标版本号依赖管理而非依赖以达到减少依赖冲突的目的spring-boot-starter-parent2.5.0与 spring-boot-starter-parent2.4.6共计57处坐标版本不同?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 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion!--继承 springboot 父亲--parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.1/versionrelativePath/ !-- lookup parent from repository --/parent!--项目本身的信息--groupIdcom.itheima/groupIdartifactIddemo1_helloworld/artifactIdversion0.0.1-SNAPSHOT/versionnamedemo1_helloworld/namedescriptionDemo project for Spring Boot/description?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancemodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion2.5.0/version/parentartifactIdspring-boot-starter-parent/artifactIdpackagingpom/packaging ... /project实际开发使用任意坐标时仅书写GAV中的G和AV由SpringBoot提供如发生坐标错误再指定version要小心版本冲突如我们要用到Mysql dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependency当然也不是什么都有管理比如druid就不被管理 dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.8/version/dependency如果不写版本号的话 就会出现unknown 这个时候 我们就知道在springboot的父亲的父亲里面并没有管理这个依赖 这个时候 我们就能自己添加版本号自己添加版本号2.2 辅助功能SpringBoot程序启动package com.itheima;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;/*/*SpringBootApplication:1. 表示这个类是一个springboot应用程序的入口类。2. 要想让程序启动只需要在main方法里面写上这样的一句话SpringApplication.run(当前类的字节码对象, args);3. 拓展3.1 springboot项目启动的时候默认会扫描启动类所在的位置以及它后续的所有子包。3.2 查找到类里面打的注解 Controller , Service , RequestMapping.3.3 springApplication.run 传递进去当前类的字节码对象也是可以确定当前这个启动器它的包是哪个*/ SpringBootApplication public class Demo1HelloworldApplication {public static void main(String[] args) {SpringApplication.run(Demo1HelloworldApplication.class, args);}} SpringBoot在创建项目时采用jar的打包方式SpringBoot的引导类是项目的入口运行main方法就可以启动项目使用maven依赖管理变更起步依赖项Jetty比Tomcat更轻量级可扩展性更强相较于Tomcat谷歌应用引擎GAE已经全面切换为JettydependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId!--排除tomcat不用tomcat--!--exclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-tomcat/artifactId/exclusion/exclusions--/dependency!--添加进来jetty--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jetty/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.8/version/dependency!--整合Junit--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependencies 全部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 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion!--继承 springboot 父亲--parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.1/versionrelativePath/ !-- lookup parent from repository --/parent!--项目本身的信息--groupIdcom.itheima/groupIdartifactIddemo1_helloworld/artifactIdversion0.0.1-SNAPSHOT/versionnamedemo1_helloworld/namedescriptionDemo project for Spring Boot/description!--默认使用JDK 1.8的语法来编译代码--propertiesjava.version1.8/java.version/properties!--添加依赖--!--starter1. 在springboot的依赖里面很常见2. 一般会称之为起步依赖3. 所谓起步依赖就是说 只要导入这个起步依赖起步依赖的背后会包含着一大堆依赖--dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId!--排除tomcat不用tomcat--!--exclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-tomcat/artifactId/exclusion/exclusions--/dependency!--添加进来jetty--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jetty/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.8/version/dependency!--整合Junit--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependencies!--这是用来配置打jar包的 有了这个插件的配置那么项目打出来的jar包就具备了执行的入口。就可以使用 java -jar xxxx.jar 启动起来项目--buildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project 二、基础配置环境准备 demo2_properties 前面的创建操作和demo1类似 不在展示1. 配置文件格式问题导入框架常见的配置文件有哪几种形式1.1 修改服务器端口SpringBoot提供了多种属性配置方式application.propertiesserver.port8081重启小备注如果发现启动报错解决办法 查看进程 看看有没的被人家使用了发现被14452使用了打开任务管理器找到14452在重新启动就可以application.ymlserver:port: 8082重新启动application.yamlserver:port: 8083发现不提示 解决办法 1.2 自动提示功能消失解决方案解决完小叶子问题之 后 就会有提示了重启1.2 自动提示功能消失解决方案操作步骤第一种如果发现上面的ok点不了 可能是没有application.properties 我们要先把这个给创建出来 第二种1.3 SpringBoot配置文件加载顺序了解application.properties application.yml application.yaml注意事项SpringBoot核心配置文件名为applicationSpringBoot内置属性过多且所有属性集中在一起修改在使用时通过提示键关键字修改属性2. yaml问题导入什么是yaml和properties有什么区别YAMLYAML Aint Markup Language一种数据序列化格式优点容易阅读容易与脚本语言交互以数据为核心重数据轻格式YAML文件扩展名.yml主流.yaml 2.1 yaml语法规则大小写敏感属性层级关系使用多行描述每行结尾使用冒号结束使用缩进表示层级关系同层级左侧对齐只允许使用空格不允许使用Tab键属性值前面添加空格属性名与属性值之间使用冒号空格作为分隔#表示注释核心规则数据前面要加空格与冒号隔开2.2 yaml数组数据数组数据在数据书写位置的下方使用减号作为数据开始符号每行书写一个数据减号与数据间空格分隔数组数据在数据书写位置的下方使用减号作为数据开始符号每行书写一个数据减号与数据间空格分隔2.3 yaml数据读取2.3.1 使用Value读取单个数据属性名引用方式${一级属性名.二级属性名……}package com.itheima.web;/*在这个类里面使用Value来读取yml文件中的数据。*/import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; RestController public class Controller01 {Value(${lesson})private String lesson;//Value(${第一层.第二层.第三层.属性名})Value(${server.port})private String port;Value(${enterprise.name})private String name;Value(${enterprise.subject[0]})private String subject;RequestMapping(/readYml)public String readYml(){System.out.println(lesson lesson);System.out.println(port port);System.out.println(name name);System.out.println(subject subject);return hi springboot...;} } lesson: SpringBootserver:port: 8082enterprise:name: 传智播客age: 16tel: 4006184000subject:- Java- 前端- 大数据注如果报错的话 修改一下编码如果还报错的话 就clean一下如果还是报错的话如果还是报错 我们就把前面没有用到的application.properties和application.yaml的端口号给注释了或把这二个文件删除端口号给注释了或删除2.3.2 封装全部数据到Environment对象package com.itheima.web;/*在这个类里面使用Environment来读取yml文件中的数据。*/import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController public class Controller02 {Autowiredprivate Environment env;RequestMapping(/readYml02)public String readYml(){System.out.println(lesson env.getProperty(lesson));System.out.println(port env.getProperty(server.port));System.out.println(name env.getProperty(enterprise.name));System.out.println(subject env.getProperty(enterprise.subject[0]));return hi springboot.0222..;} } lesson: SpringBootserver:port: 8082enterprise:name: 传智播客age: 16tel: 4006184000subject:- Java- 前端- 大数据2.3.3 自定义对象封装指定数据【常用】因为封装 要得到属性 用到Data注解 所以要加入以下依赖 dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencypackage com.itheima.bean;import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component;Data Component ConfigurationProperties(prefix enterprise) public class Enterprise {private String name;private int age ;private String tel;private String [] subject; }package com.itheima.web;/*在这个类里面使用Environment来读取yml文件中的数据。*/import com.itheima.bean.Enterprise; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;RestController public class Controller03 {Autowiredprivate Enterprise enterprise;RequestMapping(/readYml03)public String readYml(){System.out.println(enterprise enterprise);return hi springboot.0333..;} } lesson: SpringBootserver:port: 8082enterprise:name: 传智播客age: 16tel: 4006184000subject:- Java- 前端- 大数据自定义对象封装数据警告解决方案问题解决加入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependency3. 多环境开发配置环境准备问题导入在实际开发中项目的开发环境、测试环境、生产环境的配置信息是否会一致如何快速切换3.1 多环境启动配置yaml文件多环境启动3.1.1 在YML文件多环境启动# 激活具体的环境 spring:profiles:active: dev--- # 定义开发环境 server:port: 80spring:config:activate:on-profile: dev ---# 定义生产环境 server:port: 81spring:config:activate:on-profile: prod--- # 定义测试环境 server:port: 82 spring:config:activate:on-profile: test 3.1.2 properties文件多环境启动application.properties# 使用properties的文件格式来定义多环境 # 1. 一套环境就一个properties文件命名格式 application-环境的id.properries # 2. 在application.properties 里面激活具体的环境。 spring.profiles.activedevapplication-dev.propertiesserver.port8081application-prod.propertiesserver.port8082application-test.propertiesserver.port8083启动3.2 多环境启动命令格式把application.properties放到properties-bak带参数启动SpringBoot打包重新cmd 修改端口参数加载优先顺序参看文档https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config3.3 多环境开发控制Maven与SpringBoot多环境兼容步骤环境准备①Maven中设置多环境属性profiles!--maven里面的开发环境配置--profileiddev_mvn/idpropertiesadev/a/propertiesactivationactiveByDefaulttrue/activeByDefault/activation/profile!--maven里面的生产环境配置--profileidprod_mvn/idpropertiesaprod/a/properties/profile!--maven里面的测试环境配置--profileidtest_mvn/idpropertiesatest/a/properties/profile/profiles ②SpringBoot中引用Maven属性# 激活具体的环境 spring:profiles:active: ${a} # 这里的值是动态变化的由maven来控制它的变化--- # 声明开发环境 server:port: 80 spring:config:activate:on-profile: dev --- # 声明生产环境 server:port: 81 spring:config:activate:on-profile: prod --- # 声明测试环境 server:port: 82 spring:config:activate:on-profile: test③执行Maven编译指令Maven指令执行完毕后生成了对应的包其中类参与编译但是配置文件并没有编译而是复制到包中解决思路对于源码中非java类的操作要求加载Maven对应的属性解析${}占位符④对资源文件开启对默认占位符的解析 !--这个插件是用来解析资源文件里面的 ${}--pluginartifactIdmaven-resources-plugin/artifactIdconfigurationencodingutf-8/encodinguseDefaultDelimiterstrue/useDefaultDelimiters/configuration/plugin重新编译Maven编译加载到属性编译顺利通过如果想要换其他的环境也可以用命令的方式打包4. 配置文件分类问题导入SpringBoot的配置文件可以放在项目的哪些地方java –jar springboot.jar --spring.profiles.activetest --server.port85 --server.servlet.context-path/heima --server.tomcat.connection-timeout-1 ... ...SpringBoot中4级配置文件1级 file config/application.yml 【最高】2级 file application.yml3级classpathconfig/application.yml4级classpathapplication.yml 【最低】作用1级与2级留做系统打包后设置通用属性3级与4级用于系统开发阶段设置通用属性演示3级和4级优先使用8888端口 因为config/application.yml的优先级高于application.yml 【最低】演示第二级演示第一级CtrlC 结束前面的重新启动三、整合第三方技术1. 整合JUnit环境准备有webdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency无webdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependency不导入web也是可以自动扫描包 也是可以自动创建工程 问题导入回忆一下Spring整合JUnit的步骤1.1 Spring整合JUnit复习1.2 SpringBoot整合JUnit先跑一下自己写的测试类SpringBootTest public class MyTest {Testpublic void test01(){System.out.println(test01....);} } 在MyTest里面测试service的方法测试类package com.itheima; import com.itheima.service.UserService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;SpringBootTest public class MyTest {Autowiredprivate UserService us;Testpublic void test01(){System.out.println(test01....);us.add();} } 接口package com.itheima.service;public interface UserService {void add(); } 实现类package com.itheima.service.impl;import com.itheima.service.UserService; import org.springframework.stereotype.Service;Service public class UserServiceImpl implements UserService {Overridepublic void add() {System.out.println(调用了UserServiceImpl的add方法~~);} }SpringBootTest解释SpringBootTest(classes Demo5JunitApplication.class)什么时候加classes1. 如果测试类所在的包 是 位于 启动类所在的包或者它的子包里面 或者大家的包名一致那么可以省略启动类不写 启动类 com.itheima 测试 com.itheima 2. 如果测试类所在的包并不是位于启动类所在包的下面那么一定要指定启动类是谁 否则有可能出错比如我们把test包放到com下面 不写classes就会出错如果写上classes2. 基于SpringBoot实现SSM整合问题导入回忆一下Spring整合MyBatis的核心思想2.1 Spring整合MyBatis复习2.1 Spring整合MyBatis复习SpringConfig导入JdbcConfig导入MyBatisConfigConfiguration ComponentScan(com.itheima) PropertySource(classpath:jdbc.properties) Import({JdbcConfig.class, MyBatisConfig.class}) public class SpringConfig {}JDBCConfig定义数据源加载properties配置项driver、url、username、password#jdbc.properties jdbc.drivercom.mysql.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/spring_db jdbc.usernameroot jdbc.passworditheimapublic class JdbcConfig {Value(${jdbc.driver})private String driver;Value(${jdbc.url})private String url;Value(${jdbc.username})private String userName;Value(${jdbc.password})private String password;Beanpublic DataSource getDataSource() {DruidDataSource ds new DruidDataSource();ds.setDriverClassName(driver);ds.setUrl(url);ds.setUsername(userName);ds.setPassword(password);return ds;} }MyBatisConfig定义SqlSessionFactoryBean定义映射配置Bean public SqlSessionFactoryBean getSqlSessionFactoryBean(DataSource dataSource) {SqlSessionFactoryBean ssfb new SqlSessionFactoryBean();ssfb.setTypeAliasesPackage(com.itheima.domain);ssfb.setDataSource(dataSource);return ssfb; }Bean public MapperScannerConfigurer getMapperScannerConfigurer() {MapperScannerConfigurer msc new MapperScannerConfigurer();msc.setBasePackage(com.itheima.dao);return msc; }2.2 SpringBoot整合MyBatisSpringBoot整合Spring不存在SpringBoot整合SpringMVC不存在SpringBoot整合MyBatis主要①创建新模块选择Spring初始化并配置模块相关基础信息②选择当前模块需要使用的技术集MyBatis、MySQL③设置数据源参数spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springboot_testusername: rootpassword: 123456注意事项SpringBoot版本低于2.4.3(不含)Mysql驱动版本大于8.0时需要在url连接串中配置时区或在MySQL数据库端配置时区解决此问题jdbc:mysql://localhost:3306/springboot_test?serverTimezoneUTC加入druid连接池 和lombok依赖 dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.8/version/dependency dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency④定义数据层接口与映射配置实体类beanpackage com.itheima.bean;import lombok.Data;Data public class Book {private int id;private String type;private String name;private String description; }⑤测试类中注入dao接口测试功能package com.itheima.dao;import com.itheima.bean.Book; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select;import java.util.List;/*要想创建出来dao的代理对象那么需要告诉springboot这个dao在哪里1. 第一种做法 就是直接在dao的接口上打上注解 Mapper2. 第二种做法 在启动类上打上注解 MapperScan(com.itheima.dao)*/ Mapper public interface BookDao {Select(select * from tbl_book)ListBook findAll(); }package com.itheima;import com.itheima.dao.BookDao; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;SpringBootTest class Demo6MybatisApplicationTests {Autowiredprivate BookDao dao;Testvoid testFindAll() {System.out.println(dao.findAll() dao.findAll());} }测试结果如果不用druid连接池 就用光连接池spring:datasource:#type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springboot_testusername: rootpassword: 123456/*要想创建出来dao的代理对象那么需要告诉springboot这个dao在哪里1. 第一种做法 就是直接在dao的接口上打上注解 Mapper2. 第二种做法 在启动类上打上注解 MapperScan(com.itheima.dao)*/第二种做法package com.itheima;import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;MapperScan(com.itheima.dao) SpringBootApplication public class Demo6MybatisApplication {public static void main(String[] args) {SpringApplication.run(Demo6MybatisApplication.class, args);}}如果二种都不打 会报以下错误Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type com.itheima.dao.BookDao available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {org.springframework.beans.factory.annotation.Autowired(requiredtrue)}2.3 案例-SpringBoot实现ssm整合① 环境准备② 导入静态页面③ ymlspring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springboot_testusername: rootpassword: 123456启动访问http://localhost:8080/pages/books.html④ 前端 methods: {//列表getAll() {axios.get(/books).then(resp{console.log(resp);//this.dataList resp.data.data;});⑤ bean实体类package com.itheima.bean;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;/*这个类是用来包装返回给前端的数据*/AllArgsConstructor NoArgsConstructor Data public class Result {private int code; //代表这次请求的代号 表示成功或者表示失败private String msg; //代表这次请求的代号的一个简短说明 添加品牌成功 或者 添加品牌失败private Object data; //代表这次请求要返回给客户端的数据一般是针对查询操作。 } ⑥ dao接口package com.itheima.dao;import com.itheima.bean.Book; import org.apache.ibatis.annotations.Select;import java.util.List;public interface BookDao {Select(select * from tbl_book)ListBook findAll(); }⑦ service接口package com.itheima.service;import com.itheima.bean.Book;import java.util.List;public interface BookService {ListBook findAll(); }⑧ BookServiceImpl实现类package com.itheima.service.impl;import com.itheima.bean.Book; import com.itheima.dao.BookDao; import com.itheima.service.BookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional;import java.util.List;Service Transactional public class BookServiceImpl implements BookService {Autowiredprivate BookDao dao;Overridepublic ListBook findAll() {return dao.findAll();} }⑨ web 【Controller】package com.itheima.web;import com.itheima.bean.Book; import com.itheima.bean.Result; import com.itheima.service.BookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List;RequestMapping(/books) RestController public class BookController {Autowiredprivate BookService bs;GetMappingpublic Result findAll(){ListBook list bs.findAll();return new Result(1, 查询成功 , list);} }启动类打上MapperScan(com.itheima.dao)package com.itheima;import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;MapperScan(com.itheima.dao) SpringBootApplication public class Demo7SsmApplication {public static void main(String[] args) {SpringApplication.run(Demo7SsmApplication.class, args);}}启动⑩ 前端 methods: {//列表getAll() {axios.get(/books).then(resp{console.log(resp);this.dataList resp.data.data;});重启
http://www.dnsts.com.cn/news/82031.html

相关文章:

  • 搭建一个网站需要多少钱建设网站如何进行网站备案
  • 北京网站制作定制基本公共服务标准化
  • 广州h5网站制作新城区网站建设
  • 上海做原创网站网站建设的网站分析怎么写
  • 什么样的网站需要改版网站经营范围
  • 视频网站建设的意义论文免费自助建站哪个平台好
  • 网站软文写作要求老薛主机 wordpress 打不开
  • 西部数码网站管理软件筑建网官网首页
  • 领导不愿意做招聘网站怎么办template是什么文件
  • 常州专业网站建设公司哪家好华为网站建设费用
  • 个性化网站建设公司视频直播类网站开发难度
  • html5 网站开发 适配网站悬浮广告代码
  • app网站开发长沙高端型网站
  • 做网站如何来钱公司注册网上核名几个字
  • 成都微信网站建设多wordpress转入插件
  • 建筑网站首页大图设计学专业
  • 做信誉认证对网站有什么好处美团网站开发费用
  • 做网站设计答辩问题wordpress相册打造的视频弹出
  • 网站开发直播小县城做婚礼网站
  • 网站人多怎么优化网站建设用什么程序语言
  • 2015网站备案没下来秦皇岛做网站外包
  • 暴雪战网官网乐陵德州seo公司
  • wordpress登录于未登录菜单如何优化基础建站
  • 调查网站怎么做建一个o2o网站
  • 郯城做网站天津网站建设方案策划
  • 1建设网站的重要性襄阳网站建设公司
  • 个人网站示例什么网站可以做简历
  • 织梦网站模板还原的文件在哪里免费的商城小程序
  • 上饶专业的企业网站建设公司某个产品营销推广方案
  • 青岛建站方案应聘工作哪个网站比较好