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

网站建设 广深圳做人工智能芯片的公司

网站建设 广,深圳做人工智能芯片的公司,上海的设计网站,wordpress poiplayer目录 一 SpringBoot简介1. 入门案例问题导入1.1 入门案例开发步骤1.2 基于SpringBoot官网创建项目1.3 SpringBoot项目快速启动 2. SpringBoot概述问题导入2.1 起步依赖2.2 辅助功能 二 基础配置1. 配置文件格式问题导入1.1 修改服务器端口1.2 自动提示功能消失解决方案1.3 Spri… 目录 一 SpringBoot简介1. 入门案例问题导入1.1 入门案例开发步骤1.2 基于SpringBoot官网创建项目1.3 SpringBoot项目快速启动 2. SpringBoot概述问题导入2.1 起步依赖2.2 辅助功能 二 基础配置1. 配置文件格式问题导入1.1 修改服务器端口1.2 自动提示功能消失解决方案1.3 SpringBoot配置文件加载顺序 2. yaml2.1 yaml语法规则2.2 yaml数组数据2.3 yaml数据读取 3. 多环境开发配置问题导入3.1 多环境启动配置3.2 多环境启动命令格式3.3 多环境开发控制 4. 配置文件分类问题导入 三 整合第三方技术1. 整合JUnit问题导入1.1 Spring整合JUnit1.2 SpringBoot整合JUnit 2. 基于SpringBoot实现SSM整合问题导入2.1 Spring整合MyBatis2.2 SpringBoot整合MyBatis2.3 案例-SpringBoot实现ssm整合 一 SpringBoot简介 1. 入门案例 问题导入 SpringMVC的HelloWord程序大家还记得吗 SpringBoot是由Pivotal团队提供的全新框架其设计目的是用来简化Spring应用的初始搭建以及开发过程原生开发SpringMVC程序过程 1.1 入门案例开发步骤 ①创建新模块选择Spring初始化并配置模块相关基础信息 ②选择当前模块需要使用的技术集 ③开发控制器类 RestController RequestMapping(/books) public class BookController {GetMapping(/{id})public String getById(PathVariable Integer id) {System.out.println(id id);return hello , spring boot! ;} }④运行自动生成的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.5.0/version/parentgroupIdcom.itheima/groupIdartifactIdspringboot-01-quickstart/artifactIdversion0.0.1-SNAPSHOT/versiondependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency/dependencies /projectSpringBootApplication public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);} }Spring程序与SpringBoot程序对比 注意事项 基于idea开发SpringBoot程序需要确保联网且能够加载到程序框架结构 1.2 基于SpringBoot官网创建项目 官网https://start.spring.io/ 1.3 SpringBoot项目快速启动 ① 对SpringBoot项目打包执行Maven构建指令package ② 执行启动指令 java -jar springboot_01_quickstart.jar # 项目的名称根据实际情况修改注意事项 jar支持命令行启动需要依赖maven插件支持请确认打包时是否具有SpringBoot对应的maven插件。 buildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins /build2. SpringBoot概述 问题导入 学习了SpringBoot入门案例之后感觉对比SpringMVC哪一个更加方便简洁 SpringBoot是由Pivotal团队提供的全新框架其设计目的是用来简化Spring应用的初始搭建以及开发过程Spring程序缺点 配置繁琐依赖设置繁琐 SpringBoot程序优点 自动配置起步依赖简化依赖配置辅助功能内置服务器…… 2.1 起步依赖 starter 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.5.0/version/parentgroupIdcom.itheima/groupIdartifactIdspringboot-01-quickstart/artifactIdversion0.0.1-SNAPSHOT/versiondependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency/dependencies /projectproject 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/modelVersiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion2.5.0/versionpackagingpom/packagingpropertiesservlet-api.version4.0.1/servlet-api.version .../properties /projectparent 所有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.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要小心版本冲突 dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion${junit.version}/version /dependency dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion${servlet-api.version}/version /dependency?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.xsdparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.0/version/parentdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependencies /project2.2 辅助功能 SpringBoot程序启动 SpringBootApplication public class Springboot01QuickstartApplication {public static void main(String[] args) {SpringApplication.run(Springboot01QuickstartApplication.class, args);} }SpringBoot在创建项目时采用jar的打包方式SpringBoot的引导类是项目的入口运行main方法就可以启动项目使用maven依赖管理变更起步依赖项Jetty比Tomcat更轻量级可扩展性更强相较于Tomcat谷歌应用引擎GAE已经全面切换为Jetty dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId!--web起步依赖环境中排除Tomcat起步依赖--exclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-tomcat/artifactId/exclusion/exclusions/dependency!--添加Jetty起步依赖版本由SpringBoot的starter控制--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jetty/artifactId/dependency /dependencies二 基础配置 1. 配置文件格式 问题导入 框架常见的配置文件有哪几种形式 1.1 修改服务器端口 http://localhost:8080/books/1 http://localhost/books/1 SpringBoot提供了多种属性配置方式 application.properties server.port80application.yml server:port: 81application.yaml server:port: 821.2 自动提示功能消失解决方案 操作步骤 1.3 SpringBoot配置文件加载顺序 application.properties application.yml application.yaml 注意事项 SpringBoot核心配置文件名为applicationSpringBoot内置属性过多且所有属性集中在一起修改在使用时通过提示键关键字修改属性 2. yaml YAMLYAML Ain’t Markup Language一种数据序列化格式优点 容易阅读容易与脚本语言交互以数据为核心重数据轻格式 YAML文件扩展名 .yml主流.yaml 2.1 yaml语法规则 大小写敏感属性层级关系使用多行描述每行结尾使用冒号结束使用缩进表示层级关系同层级左侧对齐只允许使用空格不允许使用Tab键属性值前面添加空格属性名与属性值之间使用冒号空格作为分隔#表示注释核心规则数据前面要加空格与冒号隔开 2.2 yaml数组数据 数组数据在数据书写位置的下方使用减号作为数据开始符号每行书写一个数据减号与数据间空格分隔 2.3 yaml数据读取 lesson: SpringBootserver:port: 80enterprise:name: itcastage: 16tel: 4006184000subject:- Java- 前端- 大数据使用Value读取单个数据属性名引用方式${一级属性名.二级属性名……} 封装全部数据到Environment对象 自定义对象封装指定数据【常用】 //封装yaml对象格式数据必须先声明当前实体类受Spring管控 Component //使用ConfigurationProperties注解定义当前实体类读取配置属性信息通过prefix属性设置读取哪个数据 ConfigurationProperties(prefix enterprise) public class Enterprise {private String name;private Integer age;private String tel;private String[] subject;Overridepublic String toString() {return Enterprise{ name name \ , age age , tel tel \ , subject Arrays.toString(subject) };}public String getName() {return name;}public void setName(String name) {this.name name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}public String getTel() {return tel;}public void setTel(String tel) {this.tel tel;}public String[] getSubject() {return subject;}public void setSubject(String[] subject) {this.subject subject;} }RestController RequestMapping(/books) public class BookController {//使用Value读取单一属性数据Value(${lesson})private String lesson;Value(${server.port})private Integer port;Value(${enterprise.subject[0]})private String subject_00;//使用Environment封装全配置数据Autowiredprivate Environment environment;Autowiredprivate Enterprise enterprise;GetMapping(/{id})public String getById(PathVariable Integer id){System.out.println(lesson);System.out.println(port);System.out.println(subject_00);System.out.println(--------------------);System.out.println(environment.getProperty(lesson));System.out.println(environment.getProperty(server.port));System.out.println(environment.getProperty(enterprise.age));System.out.println(environment.getProperty(enterprise.subject[1]));System.out.println(---------------------);System.out.println(enterprise);return hello , spring boot!;} }自定义对象封装数据警告解决方案 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional /dependency3. 多环境开发配置 问题导入 在实际开发中项目的开发环境、测试环境、生产环境的配置信息是否会一致如何快速切换 3.1 多环境启动配置 yaml文件多环境启动 #设置启用的环境 spring:profiles:active: dev--- #开发(推荐写法) spring:config:activate:on-profile: dev server:port: 80 --- #生产(过时写法) spring:profiles: pro server:port: 81 --- #测试(过时写法) spring:profiles: test server:port: 82 ---properties文件多环境启动 #主启动配置文件 application.properties spring.profiles.activepro#环境分类配置文件 application-pro.properties server.port80#环境分类配置文件 application-dev.properties server.port81#环境分类配置文件application-test.properties server.port823.2 多环境启动命令格式 带参数启动SpringBoot java –jar springboot.jar --spring.profiles.activetest java –jar springboot.jar --server.port88 java –jar springboot.jar --server.port88 --spring.profiles.activetest参数加载优先顺序 参看文档https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config 3.3 多环境开发控制 Maven与SpringBoot多环境兼容步骤 ①Maven中设置多环境属性 profilesprofileiddev_env/idpropertiesprofile.activedev/profile.active/propertiesactivationactiveByDefaulttrue/activeByDefault/activation/profileprofileidpro_env/idpropertiesprofile.activepro/profile.active/properties/profileprofileidtest_env/idpropertiesprofile.activetest/profile.active/properties/profile /profiles②SpringBoot中引用Maven属性 ③执行Maven打包指令 Maven指令执行完毕后生成了对应的包其中类参与编译但是配置文件并没有编译而是复制到包中 解决思路对于源码中非java类的操作要求加载Maven对应的属性解析${}占位符 ④对资源文件开启对默认占位符的解析 buildpluginspluginartifactIdmaven-resources-plugin/artifactIdconfigurationencodingutf-8/encodinguseDefaultDelimiterstrue/useDefaultDelimiters/configuration/plugin/plugins /buildMaven打包加载到属性打包顺利通过 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级用于系统开发阶段设置通用属性 三 整合第三方技术 1. 整合JUnit 问题导入 回忆一下Spring整合JUnit的步骤 1.1 Spring整合JUnit 1.2 SpringBoot整合JUnit 【第一步】添加整合junit起步依赖(可以直接勾选) dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope /dependency【第二步】编写BookService public interface BookService {public void save(); }【第三步】编写BookServiceImpl Service public class BookServiceImpl implements BookService {Overridepublic void save() {System.out.println(book service is running...);} }【第四步】编写测试类默认自动生成了一个 SpringBootTest class Springboot07JunitApplicationTests {Autowiredprivate BookService bookService;Testpublic void testSave() {bookService.save();} }2. 基于SpringBoot实现SSM整合 问题导入 回忆一下Spring整合MyBatis的核心思想 2.1 Spring整合MyBatis SpringConfig 导入JdbcConfig导入MyBatisConfig Configuration 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.cj.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/ssm_db?characterEncodingutf8useSSLfalseserverTimezoneAsia/ShanghairewriteBatchedStatementstrue jdbc.usernameroot jdbc.passwordrootpublic 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 dataSource(){DruidDataSource dataSource new DruidDataSource();dataSource.setDriverClassName(driver);dataSource.setUrl(url);dataSource.setUsername(username);dataSource.setPassword(password);return dataSource;}//Spring事务管理需要的平台事务管理器对象Beanpublic PlatformTransactionManager transactionManager(DataSource dataSource){DataSourceTransactionManager ds new DataSourceTransactionManager();ds.setDataSource(dataSource);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整合MyBatis SpringBoot整合Spring不存在SpringBoot整合SpringMVC不存在SpringBoot整合MyBatis主要 ①创建新模块选择Spring初始化并配置模块相关基础信息 ②选择当前模块需要使用的技术集MyBatis、MySQL ③pom文件 ?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.5.0/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.itheima/groupIdartifactIdspringboot_08_mybatis/artifactIdversion0.0.1-SNAPSHOT/versionnamespringboot_08_mybatis/namedescriptionspringboot_08_mybatis/descriptionpropertiesjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.2.0/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build /project④创建Book实体类 public class Book {private Integer id;private String name;private String type;private String description;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 String getType() {return type;}public void setType(String type) {this.type type;}public String getDescription() {return description;}public void setDescription(String description) {this.description description;}Overridepublic String toString() {return Book{ id id , name name \ , type type \ , description description \ };} }⑤定义数据层接口与映射配置 Mapper public interface BookDao {Select(select * from tbl_user where id #{id})public Book getById(Integer id); }⑥设置数据源参数 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_db?characterEncodingutf8useSSLfalseserverTimezoneAsia/ShanghairewriteBatchedStatementstrueusername: rootpassword: root⑦测试类中注入dao接口测试功能 SpringBootTest class Springboot08MybatisApplicationTests {Autowiredprivate BookDao bookDao;Testpublic void testGetById() {Book book bookDao.getById(1);System.out.println(book);} }⑧可以自定义数据源不添加则使用默认 添加druid依赖 dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.8/version /dependency⑨修改数据源参数 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_db?characterEncodingutf8useSSLfalseserverTimezoneAsia/ShanghairewriteBatchedStatementstrueusername: rootpassword: root#可以自定义数据源type: com.alibaba.druid.pool.DruidDataSource2.3 案例-SpringBoot实现ssm整合 【第一步】创建SpringBoot工程添加druid依赖 ?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.5.0/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.itheima/groupIdartifactIdspringboot_09_ssm/artifactIdversion0.0.1-SNAPSHOT/versionnamespringboot_09_ssm/namedescriptionDemo project for Spring Boot/descriptionpropertiesjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.2.0/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!--TODO 1 添加必要的依赖坐标--dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.8/version/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build /project【第二步】复制springmvc_11_page工程各种资源(主java类、页面、测试类) 【第三步】删除config包中的所有配置在BookDao接口上加Mapper注解 //todo 3 在BookDao接口上加Mapper注解让SpringBoot给接口创建代理对象 Mapper public interface BookDao {//... }【第四步】将application.properties修改成application.yml配置端口号和连接参数 server:port: 80 # todo 4 配置数据库连接参数 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_db?characterEncodingutf8useSSLfalseserverTimezoneAsia/ShanghairewriteBatchedStatementstrueusername: rootpassword: roottype: com.alibaba.druid.pool.DruidDataSource【第五步】修改BookServiceTest配置类进行配置 // todo 5 修改单元测试类添加SpringBootTest主键修复Test注解导包 SpringBootTest public class BookServiceTest {Autowiredprivate BookService bookService;Testpublic void testGetById(){Book book bookService.getById(2); //传递参数1会抛出异常System.out.println(book);}Testpublic void testGetAll(){ListBook all bookService.getAll();System.out.println(all);} }【第六步】在static目录中提供index.html页面跳转到pages/books.html scriptlocation.hrefpages/books.html /script最后运行引导类即可访问
http://www.lakalapos1.cn/news/48578/

相关文章:

  • 上海网站建设专业公司哪家好wordpress模板 淘宝
  • 网站建设与制作的流程阿里云服务器学生免费领取
  • 全国建设注册中心网站seo短视频网页入口引流方案
  • 可以免费做中考题的网站互联网保险乱象
  • 防蚊手环移动网站建设北京大兴网站制作推广
  • 深圳专业营销网站设计爱在发烧 wordpress
  • 网站开发安装广州外贸网站建站
  • 为什么很多网站在维护网页数据库怎么搭建
  • 网站建设寻求北京电力建设公司官网
  • 切实加强门户网站建设网站视觉规范
  • 最牛网站建设建立皇朝争霸完结小说
  • 温州网站建设案例拥有自己的网站 如何做推广
  • 自适应网站会影响推广东莞房价排名
  • 购物网站开发背景需求用什么工具做网站视图
  • 做网站域名有什么用做鞋子有什么好网站好
  • 建设vip网站相关视频下载怎么在百度上推广自己的店铺
  • 红色网站欣赏荆门城乡建设局网站
  • 可以放友情链接的网站app开发公司排名
  • Apache局域网网站制作金融视频直播网站开发
  • 分销网站建设网站建设开票项目是什么意思
  • 东营本地网站制作公司精品课程网站建设设计方案
  • 站长工具高清无吗郑州短视频运营
  • 网站系统是一个典型的无锡微信网站开发
  • 网站源码和模板网站seo策划方案实例
  • 网站注册凡科吾爱上云小程序制作
  • 张掖网站制作石家庄教育平台网站建设
  • 动漫设计就业前景seo技术培训茂名
  • 一个企业网站如何能放到互联网上 vps企业网站推广成功案例
  • 网站静态化对seo南昌网站建设好么
  • 辽宁模板网站建设公司三明交通建设集团网站