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

凡科网站建设注册产品推广营销方案

凡科网站建设注册,产品推广营销方案,网站没收录要怎么做,学服装设计培训哪里好Idea中隐藏指定文件或指定类型文件 setting->File Types->Ignored Files and Folders输入要隐藏的文件名,支持*号通配符回车确认添加 SpringBoot概述 parent 小结: 开发SpringBoot程序要继承spring-boot-starter-parentspring-boot-starter-pa…

Idea中隐藏指定文件或指定类型文件

  • setting->File Types->Ignored Files and Folders
  • 输入要隐藏的文件名,支持*号通配符
  • 回车确认添加

SpringBoot概述

parent

小结:

  1. 开发SpringBoot程序要继承spring-boot-starter-parent
  2. spring-boot-starter-parent中定义了若干个依赖管理
  3. 继承parent模块可以避免多个依赖使用相同技术时出现依赖版本冲突
  4. 继承parent的形式也可以采用依赖的形式实现效果

starter

小结:

  1. 开发SpringBoot程序需要导入坐标时通常导入对应的starter
  2. 每个不同的starter根据功能不同,通常包含多个依赖坐标
  3. 使用startwe可以实现快速配置的效果,达到简化配置的目的

引导类

  • 启动方式
@SpringBootApplication
public class SpringBootApplication {public static void main(String[] args) {SpringApplicaiton.run(SpringBootApplicaiton.class,args);}
}
  • SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目
  • SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载bean

小结:

  • SpringBoot工程提供引导类用来启动程序
  • SpringBoot工程启动后创建并初始化Spring容器

辅助功能

内置服务器

  • tomcat(默认)         apache出品,粉丝多,应用面广,负载了若干较重的组件
  • jetty         更轻量级,负载性能远不及tomcat
  • undertow          undertow,负载性能勉强跑赢tomcat

小结:

  1. 内嵌Tomcat服务前是SpringBoot辅助功能之一
  2. 内嵌Tomcat工作原理是将Tomcat服务器作为对象运行,并将该对象交给Spring容器管理
  3. 变更内嵌服务器思想是去除现有服务器,添加全新的服务器

REST风格

REST简介

  • REST,表现形态状态转换
    传统风格资源描述形式
            http://localhost/user/getById?id=1
            http://localhost/user/saveUser

    REST风格描述形式
            http://localhost/user/1
            http://localhost/user

  • 优点:
    隐藏资源的访问行为,无法通过地址得到对资源是何种操作
    书写简化

  • 按照REST风格访问资源时使用行为动作区分对资源进行了何种操作
            http://localhost/users         查询全部用户信息 GET (查询)
            http://localhost/users /1        查询指定用户信息 GET (查询)
            http://localhost/users         添加用户信息 POST(新增/保存)
            http://localhost/users         修改用户信息 PUT(修改/更新)
            http://localhost/users /1        删除用户信息 DELETE (删除)

注意事项
上述行为是约定方式,约定不是规范,可以打破,所以称REST风格,而不是REST规范
描述模块的名称通常使用复数,也就是加s的格式描述,表示此类资源,而非单个资源,例如:users、books、accounts…


RESTful入门案例

  1. 设定http请求动作
@RequestMapping(value = "/users", method = RequestMethod.POST)
@ResponseBody
public String save(@RequestBody User user) {System.out.println("user sava..." + user);return "user save";	
}@RequestMapping(value = "/users", method = RequestMethod.PUT)
@ResponseBody
public String update(@RequestBody User user) {System.out.println("user update..." + user);return "user update";	
}
  1. 设定请求参数(路径变量)
@RequestMapping(value = "/users/{id}", method = RequestMethod.DELETE)
@ResponseBody
public String update(@PathVariable Integer id) {System.out.println("user delete..." + id);return "user delete";	
}

详解

  • 名称:@RequestMapping
  • 类型:方法注解
  • 位置:SpringMVC控制器方法定义上方
  • 作用:设置当前控制器方法请求访问路径
  • 范例:
@RequestMapping(value = "/users", method = RequestMethod.POST)
@ResponseBody
public String save(@RequestBody User user) {System.out.println("user save..." + user);return "user save";	
}
  • 属性

        value:访问请求路径
        method:http请求动作,标准动作(GET/POST/PUT/DELETE)


  • 名称:@PathVariable
  • 类型:形参注解
  • 位置:SpringMVC控制器方法形参定义前面
  • 作用:绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名一一对应
  • 范例:
@RequestMapping(value = "/users/{id}", method = RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable Integer id) {System.out.println("user delete..." + id);return "user delete";	
}

@RequestBody         @RequestParam        @PathVariable

  • 区别
    @RequestParam用于接收url地址传参或表单传参
    @RequestBody用于接收json数据
    @pathVariable用于接收路径参数,使用{参数名称}描述路径参数

  • 应用
    开发中,发送请求参数超过1小时,以json格式为主,@RequestBody应用较广
    如果发送非json格式数据,选用@RequestParam接收请求参数
    采用RESTful进行开发,当参数数据较少时,例如1个,可以采用@PathVariable接收请求路径变量,通常用于传递id值


RESTful快速开发

  • 名称:@RestController
  • 类型:类注解
  • 位置:基于SpringMVC的RESTful开发控制器类定义上方
  • 作用:设置当前控制器类为RESTful风格,等同于@Controller与@ResponseBody两个注解组合功能
  • 范例:
@RestController
public class BookController {
}

  • 名称:@GetMapping       @PostMapping       @PutMapping        @DeleteMapping
  • 类型:方法注解
  • 位置:基于SpringMVC的RESTful开发控制器方法定义上方
  • 作用:设置当前控制器方法请求访问路径与请求动作,每种对应一个请求动作,例如@GetMapping对应GET请求
  • 范例:
@GetMapping("/{id}")
public String getById(@PathVariable Interger id) {System.out.println("book getById,,,"+id);return "book getById";
}
  • 属性
    value(默认):请求访问路径

复制模块

小结:

  1. 在工作空间中复制对应工程,并修改工程名称
  2. 删除与Idea相关配置文件,仅保留src目录与pom.xml
  3. 修改pom.xml文件中的artifactId与新工程/模块名相同
  4. 删除name标签(可选)
  5. 保留备份工程供后期使用

基础配置

属性配置

  • 修改配置

修改服务器端口

server.port=80

关闭运行日志图标(banner)

spring.main.banner-mode=off

设置日志相关

logging.level.root=debug

SpringBoot默认配置文件application.properties

  • SpringBoot内置属性查询地址:
 http://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties

配置文件分类

  • SpringBoot提供了多种属性配置方式

appliction.properties

server.port=80

appliction.yml

server:port:81

appliction.yaml

server:port:82

小结:

1、SpringBoot提供了3种配置文件的格式

  • properties(传统格式/默认格式)
  • yml(主流格式)
  • yaml

2、配置文件间的加载优先级

  • properties(最高)
  • yml
  • yaml(最低)

3、不同配置文件中相同配置按照假造优先级相互覆盖,不同配置文件中不同配置全部保留

4、指定SpringBoot配置文件

  • Setting -> Project Structure -> Facets
  • 选择对应项目/工程
  • Customize Spring Boot
  • 选择配置文件

yaml文件

yaml语法规则

字面值表示方式

boolean: TRUE         //TRUE,true,True,FALSE,false,False均可
float: 3.14            //6.8523015e+5  支持科学计数法
int: 123               //0b1010_0111_0100_1110 支持二进制、八进制、十六进制
null: ~                //使用~表示null
string: HelloWorld     //字符串可以直接书写
string2: "Hello World" //可以使用双引号包裹特殊字符
date: 2018-02-17       //日期必须使用yyyy-MM-dd格式
datetime: 2018-02-17T15:02:31+08:00  //时间和日期之间使用T连接,最后使用+代表时区

数据表示方式:在属性名书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔

subject:- Java- 前端- 大数据
enterprise:name: itcastage: 16subject:- Java- 前端- 大数据likes: [王者荣耀,刺激战场]   #数组书写缩略格式
users:          #对象数组格式- name: Tomeage: 4- name: Jerryage: 5
users:          #对象数组格式二-name: Tomage: 4-name: Jerryage: 5
users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ]

小结:
1.yaml语法规则

  • 大小写敏感
  • 属性层级关系使用多行描述,每行结尾使用冒号结束
  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
  • 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
  • #表示注释

2.注意属性名冒号后面与数据之间有一个空格


yaml数据读取

  • 使用@Value读取单个数据,属性名引用方式:${一级属性名.二级属性名…}
lession: SpringBootserver:port: 82enterprise:name: itcastage: 16tel: 400618400subject:- Java- 前端- 大数据
@RestController
@RequestMapping("/boots")
public class BookController {@Value("${lesson}")private String lessonName;@Value("${server.port}")private int port;@Value("${enterprise.subject[1]}")private String[] subject_01;
}

总结:
1.使用@Value配合SpEL读取单个数据
2.如果数据存在多层级,依次书写层级名称即可


  • 在配置文件中可以使用属性名引用方式引用属性
baseDir: /usr/local/firecenter:dataDir: ${baseDie}/datatempDir: ${baseDir}/tmplogDir: ${baseDir}/logmsgDie: ${baseDir}/msgDir

属性值中如果出现转义字符,需要使用双引号包裹

lesson: "Spring\tboot\nlesson"

总结:

  1. 在配置文件中可以使用${属性名}方式引用属性值
  2. 如果属性中出现特殊字符,可以使用双引号包裹起来作为字符解析

  • 封装全部数据到Enviroment对象
lession: SpringBootserver:port: 82enterprise:name: itcastage: 16tel: 400618400subject:- Java- 前端- 大数据
@RestController
@RequestMapping("/books")
public class BookController {@Autowiredprivate Environment env;@GetMapping("/{id}")public String getById(@PathVariable Integer id) {System.out.println(env.getProperty("lesson"));			System.out.println(env.getProperty("enterprise.name"));System.out.println(env.getProperty("enterprise.subject[1]"));return "hello";	}
}

总结:
1.使用Enviroment对象封装全部配置信息
2.使用@Autowired自动装配数据到Enviroment对象中


  • 自定义对象封装指定数据
lession: SpringBootserver:port: 82enterprise:name: itcastage: 16tel: 400618400subject:- Java- 前端- 大数据
@Data
@Component
@ConfigurationProperties(prefix = "enterprise")
public class Enterprise {private String name;private Integer age;private String[] subject;
}
datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTCusername: rootpassword: root
@Data
@Component
@ConfigurationProperties(prefix = "datasource")
public class Enterprise {private String driverClassName;private String url;private String userName;private String password;
}

总结:
1.使用@CongigurationProperties注解绑定配置信息到封装类中
2.封装类需要定义为Spring管理的bean,否则无法进行属性注入


整合JUnit

  • SpringBoot整合JUnit
@SpringBootTest
class SpringbootApplicationTests {@Autowiredprivate BookService bookService;@Testpublic void testSave(){bookService.save();}
}
  • 名称:@SpringBootTest
  • 类型:测试类注解
  • 位置:测试类定义上方
  • 作用:设置JUnit加载的SpringBoot启动类
  • 范例:
@SpringBootTest
class SpringBootApplicaitonTests {}

总结:
1.导入测试对应的starter
2.测试类使用@SpringBootTest修饰
3.使用自动装配的形式添加要测试的对象


  • 名称:@SpringBootTest
  • 类型:测试类注解
  • 位置:测试类定义上方
  • 作用:设置Junit加载的SpringBoot启动类
  • 范例:
@SpringBootTest(classes = SpringbootApplication.class)
class SpringbootApplicationTest {}
  • 相关属性
    classes:设置SpringBoot启动类

注意事项:
如果测试类在SpringBoot启动类的包或子包中,可以省略启动类的设置,也就是省略classes的设定

总结:
1.测试类如果存在于引导类所在包或子包中无需指定引导类
2.测试类如果不存在引导类所在的包或子包中需要通过classes属性指定引导类


SpringBoot整合MyBatis

步骤:

  1. 创建新模块,选择Spring初始化,并配置模块相关基础信息
  2. 选择当前模块需要使用的技术集(MyBatis、MySQL)
  3. 设置数据源参数
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_dbusername: rootpassword: root

4.定义数据层接口与映射配置

@Mapper
public interface UserDao {@Select("select * from user")public List<User> getAll();
}

5.测试类中注入dao接口,测试功能

@SpringBootTest
class SpringbootMybatisApplicationTests {@Autowiredprivate BookDao bookDao;@Testpublic void testGetById(){Book book = bookDao.getById(1);System.out.println(book);}
}

总结:
1.勾选MyBatis技术,也就是导入MyBatis对应的starter
2.数据库连接相关信息转换成配置
3.数据库SQL映射需要添加@Mapper被容器识别到


SpringBoot整合MyBatis常见问题处理

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTCusername: rootpassword: root

总结:
1.MySQL8.X驱动强制要求设置时区

  • 修改url,添加serverTimezone设定
  • 修改MySQL数据库配置(略)
    2.驱动类过时,提醒更换为com.mysql.cj.jdbc.Driver

SpringBoot整合MyBatis-Plus

1.手动添加SpringBoot整合MyBatis-Plus的坐标,可以通过mvnrepository获取

<dependency><groupId>com.baomidou</groudId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3</version>
</dependency>

注意事项:
由于SpringBoot中未收录MyBatis-Plus的坐标版本,需要指定对应的Version

2.定义数据层接口与映射配置,继承BaseMapper

@Mapper
public interface UserDao extends BaseMapper<User> {
}

总结:
1.手工添加Mybatis-Plus对应的starter
2.数据层接口使用BaseMapper简化开发
3.需要使用的第三方技术无法通过勾选确定时,需要手工添加坐标


整合Druid

导入Druid对用的starter

<dependency><groupId>com.alibaba</groudId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.6</version>
</dependency>

变更Druid的配置方式

spring:datasource:druid:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTCusername: rootpassword: root

总结:
1.整合Druid需要导入Druid对应的starter
2.根据Druid提供的配置方式进行配置
3.整合第三方技术通过方式

  • 导入对应的starter
  • 根据提供的配置格式,配置非默认值对应的配置项

工程打包与运行

1.对SpringBoot项目打包(执行Maven构建指令package)

mvn package

2.运行项目(执行启动指令)

java -jar springboot.jar

注意事项:
jar支持命令行启动需要依赖maven插件支持,请确认打包时是否具有SpringBoot对应的maven插件

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

总结:
1.SpringBoot工程可以基于java环境下独立运行jar文件启动服务
2.SpringBoot工程执行mvn名利package进行打包
3.执行jar命令:java -jar 工程名.jar


命令行启动常见问题及解决方案

window端口被占用


#查询端口
netstat -ano#查询指定端口
netstat -ano |findstr "端口号"#根据进程PID查询进程名称
tasklist |findstr "进程PID号"#根据PID杀死任务
taskkill -f -pid  "进程PID号"#根据进程名称杀手任务
taskkill -f -t -im "进程名称"

临时属性

1.使用jar命令启动SpringBoot工程时可以使用临时属性替换配置文件中的属性
2.临时属性添加方式:java -jar 工程名.jar –属性名=值
3.多个临时属性之间使用空格分隔
4.临时属性必须是当前boot工程支持的属性,否则设置无效


临时属性(开发环境)

带属性启动SpringBoot程序,为程序性添加运行属性
Edit Configrations->Configuration->Program arguments

--server.port=80 --logging.level.root=warn

通过编程形式带参数启动SpringBoot程序,为程序添加运行参数

public static void main(String[] args) {String[] arg = new String[1];arg[0] = "--server.port=8080";SpringApplication.run(SSMPApplication.class,arg);
}

不携带参数启动SpringBoot程序

public static void main(String[] args) {SpringApplication.run(SSMPApplication.class);
}

总结:
启动SpringBoot程序时,可以选择是否使用命令行属性为SpringBoot程序传递启动属性


http://www.ds6.com.cn/news/33562.html

相关文章:

  • ppt模板免费下载网北京网站优化推广方案
  • 帝国cms建网站域名注册信息查询whois
  • 昆山网站建设方案优化公司中小企业管理培训课程
  • 网站排名如何稳定引擎优化是什么工作
  • 赤峰市做网站公司餐饮营销策划方案
  • 多产品网站怎么做企业网站项目推广平台排行榜
  • 模版网站怎么做网站目录扫描
  • 辽宁建设工程信息网官网客服网站快照优化公司
  • 茶网站源码免费注册网页网址
  • 大型网站技术架构核心原理与案例分析今日最近的新闻大事10条
  • wordpress新建404页面宁波seo怎么做推广渠道
  • 郑州做网站的公司百度推广和优化有什么区别
  • 网站收录查询临沂seo揭阳百度seo公司
  • 网站建设 策划百度百家号官网登录
  • 如果有域名和空间怎么做网站外贸seo是什么意思
  • 郑州做企业网站的公司引擎优化是什么意思
  • 做调查问卷赚钱网站国外上海企业推广
  • 网站特效怎么做网站seo如何做好优化
  • 企业网站的制作成本在线seo推广软件
  • 奥一农场的网站开发百度seo优化培训
  • 网站建设CEO网络推广员是什么工作
  • 网站开发用原生seo关键词排名技术
  • 上海做网站企业湖南正规关键词优化
  • 最好的wordpress网站关键词优化难度分析
  • 专注网站平台推广公司百度百科官网
  • 昆明网站建设解决方案外贸网站推广与优化
  • 做网站 服务器成都做整站优化
  • 长沙营销型网站建设制作乐云seo官网
  • 可以和朋友合资做网站吗网络营销的专业知识
  • 学院门户网站建设自评百度软件应用中心