springBoot入门到精通
1.springBoot前期准备
- 1.环境配置:jdk,maven
- 2.编写工具:sts(Spring Tool Suite)
- 3.在sts里面配置maven
以上百度自行解决
2.使用springBoot APi自动创建第一个maven项目
- 1.进入这个网址:https://start.spring.io/
- 2.进行如下配置:点击查看
- 3.下载好刚刚创建的Maven项目止之后进行导入:
右单击->import->maven->exsiting Maven projects->选中项目文件夹 点击导入即可
判断是否导入成功的标志是:
打开java目录下的.java文件,运行,控制台出现以下内容即视为导入成功 点击查看运行结果
下面讲一下创建的项目每一个文件夹所存放以及用于存放的内容
springBoot运行程序时如果发现端口号被占用的问题,请参考文档
如果在浏览器上运行时出现:
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Tue Jun 30 17:24:02 CST 2015 There was an unexpected error (type=Not Found, status=404). No message available
- 1
那么就是因为你所创建的包不在springboot的主配置类所在包内,点击查看详情
- 什么叫做springboot的主配置类
含有注解@SpringBootApplication的类,比如默认创建好的主配置类是这样子的:
package com.test.HelloWord;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloWordApplication {
public static void main(String[] args) {
SpringApplication.run(HelloWordApplication.class, args);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
要想使用注解,创建的包必须全部在package com.test.HelloWord内部
举一个例子
- 有效的包名:package com.test.HelloWord.controller;
- 无效的包名:package com.test.controller;
下面讲一下常见的一些注解:
- @SpringBootApplication:springboot的主配置类,该注解包含:
1.@SpringBootConfiguration ------- 2. @EnableAutoConfiguration
1.@SpringBootConfiguration
这个注解又包含:
@Configuration,它表示配置类:
- 该类是一个配置类
- 加了这个注解会自动放入spring 容器
- @EnableAutoConfiguration:使用springBoot可以自动配置,摆脱了ssm中使用spring.xml,mybatis.xml,以及springmvc.xml文件配置的繁琐,工作原理就是就是找到主配置类所在的包,并将该包以及所在的子包纳入控制器
spring 在启动时会根据D:\MAVENRes\org\springframework\boot\spring-boot-autoconfigure\2.1.0.RELEASE\spring-boot-autoconfigure-2.1.0.RELEASE.jar下面的/META-INF/spring.factories自动加载第三方jar包
@Conditional注解:
- @ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)
- @ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
- @ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bean)
- @ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
- @ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)
- @ConditionalOnNotWebApplication(不是web应用)
- 更多注解请参考 @Controller扩展注解
如何知道系统中开启了那些自动装配,或者禁止了哪些自动装配
在application.properties加入debug=true即可
- Positive matches:中包含了所有开启的配置
- Negative matches:中包含了所有未开启的配置
3.配置文件以及ymls使用
1.配置文件的作用:就是对默认的配置进行修改
2.默认的全局配置文件:
- 1.application.properties 如何使用:key=value的形式
- 2.application.yml key:空格value(注意yml不是文本标记语言,什么是文本标记语言:xml文件就是文本标记语言,因为xml文件符合下面这种格式:)
<server>
<port>8888</port>
</server>
- 1
- 2
- 3
而yml如何实现更改端口,参考下面代码:
server:
port: 8888 注意‘:’与8888之间存在空格
- 1
- 2
要注意port要与server垂直对齐
3.具体如何修改默认配置举一个小例子:
默认端口是8080,如果我想修改成其他的端口号只需要这步操作即可:
server.port=8081,只需要这一句话即可以把端口号改为8081
- 1
- 2
4.在yml文件中对象属性进行操作:
直接看代码:
package com.test.HelloWord.po;
@Component//作用是将此bean放入spring容器
@ConfigurationProperties(prefix="StudentPo")//作用是将StudentPo能够被yml文件识别,并能对其进行属性的注入
public class StudentPo {
private String name;
private int age;
private boolean sex;
private Data birthday;
private Map<String, Object> location;
private String hobbbies[];
private List<String> skills;
private PetPo pet;
此处省略构造函数以及get set方法
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
而yml文件中的内容如下:
StudentPo:
name: zx
age: 21
sex: true
birthday: 2018/11/21
location: {province: 江苏省,city: 南京市,zone: 玄武区}//注:这种是对map函数的赋值方法,此处虽然没有加引号,但是如果字段里面有转意符,比如\n,\t等,要想使转意生效,就必须加双引号
hobbbies:
- 唱歌
- 运动 //这种是对数组进行赋值的方法
skills:
- 计算机
- 软件开发 //这种是对数组进行赋值的方法
pet:
nickName: luckliy
strain: 哈士奇 //这种是对属性为对象的赋值方法
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
测试语句如下:
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloWordApplicationTests {
@Autowired
StudentPo stu;//由于已经将student加上注解:@Component//作用是将此bean放入spring容器,所以可以进行自动注入
@Test
public void contextLoads() {
System.out.println(stu.toString());
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
4.yml通过@ConfigurationProperties 和@Value方式注入值
- @ConfigurationProperties:是为了能够让配置文件识别这个对象
- @Value:是给单个属性赋值
@Value用法:
public class StudentPo {
@Value("zx")//加上这条注解之后name的值就变为zx
private String name;
@Value("23")//age就变为23
private int age;
}
- 1
- 2
- 3
- 4
- 5
- 6
# | @ConfigurationProperties | @Value |
---|---|---|
注值 | 批量注入 | 单个 |
spEL | 不支持 | 支持 |
JSR303 | 支持 | 不支持 |
注入复杂类型 | 支持 | 不支持 |
复杂类型:除了(8个基本类型,String,Date类型以外的都是复杂类型)
下面重点讲解一下JSR303校验的用法:
@Component//作用是将此bean放入spring容器
@ConfigurationProperties(prefix="student")//作用是将StudentPo能够被yml文件识别,并能对其进行属性的注入
@Validated//开启jsr303数据校验
public class StudentPo {
@Email
private String emial
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
通过注解@PropertySource来加载不是默认配置文件的文件,注:默认配置文件只有两种:
- application.properties
- application.yml
- 除此之外都不是默认配置文件
具体如何使用@PropertySource,参考下面代码
先看看conf.properties
student.age=66
- 1
再接着看如何使用:
@Component//作用是将此bean放入spring容器
@ConfigurationProperties(prefix="student")//作用是将StudentPo能够被yml文件识别,并能对其进行属性的注入
@Validated//开启jsr303数据校验
@PropertySource(value= {"classpath:conf.properties"})//作用是引入配置文件
public class StudentPo {
private int age
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
但是这个注解有个缺陷就是仅支持.properties文件
5.@ImportResource,配置类 ,占位符表达式
1.@ImportResource的使用:
- 用于引入xml配置文件,由于springBoot已经帮我们配置好了类似于spring.xml类型的配置文件,所以当我们直接获取spring容器时就会出现错误,但是如果我们就是想使用自己的配置文件,此时只有在主程序中加入@ImportResource注解,详情如下:
@SpringBootApplication
@ImportResource({"classpath:spring.xml"})//此处是新加入的
public class HelloWordApplication {
public static void main(String[] args) {
SpringApplication.run(HelloWordApplication.class, args);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
具体如何调用这个xml文件,我们先看看这个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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="PetPo" class="com.test.HelloWord.po.PetPo">
<property name="nickName" value="zhuxu"></property>
<property name="strain" value="哈士奇"></property>
</bean>
</beans>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
对应的PetPo对象:
package com.test.HelloWord.po;
public class PetPo {
private String nickName;
private String strain;
对应的get set方法已经省略,但是一定要加进去,否则属性就无法注入
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
对应的测试程序:
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloWordApplicationTests {
@Autowired
ApplicationContext ac;//此处是为了获取spring容器
@Test
public void test1() {
PetPo petPo= (PetPo)ac.getBean("PetPo");
System.out.println(petPo.toString());
}}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
但是并不推荐这种方式进行属性的注入,太麻烦,推荐使用配置类
2.配置类
配置类就是配置文件(.xml文件)配上注解的形式,如何创建配置类:
- 在原来普通的类的基础上加上注解:@Configuration
- 但是一般配置类要和@Bean同时使用,@Bean就是为了能够像spring.xml中标签一样,能够创建多个
具体怎么使用参考下面代码:
@Configuration//加上他之后这个类就是配置类
public class AppConfig {
@Bean//加上它之后就相当于创建了一个<bean></bean>标签
public PetPo ppp() {/*ppp相当于<bean id="" class=""></bean>中的id*/
PetPo p=new PetPo();
return p;
/*返回的结果类型就相当于<bean id="" class=""></bean>中的class*/
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
下面写一个测试方法自己感受一下
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloWordApplicationTests {
@Autowired
ApplicationContext ac;//此处是为了获取spring容器
@Test
public void test1() {
PetPo petPo= (PetPo)ac.getBean("p");
System.out.println(petPo.toString());
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
3.占位符表达式
- 常见的占位符点击查看
student.age=${}
- 1
6.springBoot多环境设置及切换
- 默认情况下boot会读取application.propertiesh环境下的端口
- 多个环境:application-环境名.properties,比如:
application-dev.properties
application-test.properties
- 1
- 2
至于具体怎么切换:就是在主配置文件(application.properties)中加入:
spring.profiles.active=dev
- 1
表示切换到dev下的端口环境
通过yml文件切换环境:
server:
port: 1234
---
server:
port: 8880
spring:
profiles: dev//用于声明环境名为dev
---
server:
port: 8881
spring:
profiles: test //用于声明环境名test
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
这样的话就创建好了三个环境,但是至于使用哪一个环境,就得使用这样的配置:
在主端口中这样声明:
server:
port: 1234
spring:
profiles:
active: dev //切换到端口到dev环境
- 1
- 2
- 3
- 4
- 5
- 6
如何动态切换环境:
- 1.使用命令行:
右单击 ->Run As->RunConfigurations->Arguments->在里面输入--spring.profiles.active=环境名
比如:--spring.profiles.active=dev
- 1
- 2
- 2.打成jar在cmd里面执行,下面先讲解一下如何打成jar包
右单击项目->Run As->maven build,进入之后在package即可
- 1
下面再接着叙述如何在cmd中运行打成的jar包
- 进入cmd
- 先进入这个jar包所在的目录 然后输入指令
java -jar HelloWord-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
- 1
- 3.通过jvm参数指定
右单击 ->Run As->RunConfigurations->Java Application->HellowdApplication(此处为项目名,项目不同名字也不一样)->右边的Argument,
输入 -Dspring.profiles.active=dev
- 1
- 2
7.SpringBoot配置文件位置
springBoot能够默认读取的文件有两种,一个是application.properties以及application.yml文件
但是这两个文件可以存放在哪一个位置,就是在
- file:项目根目录/config
- file:项目根目录
- classpath:项目根目录/config
- classpath:项目根目录
file与classpath的区别就是 - file指普通目录
- classpath指构建路径(构建路径的文件夹上面有一个小标识)
如果项目配置冲突,优先级从上往下
8.外部配置文件以及加载顺序问题
配置项目运行名
在主配置文件application.properties中加入:
server.servlet.context-path=/springBoot
- 1
注意:此处的springBoot就是新加入的项目名,在未加入之前访问是这样的:
http://localhost:8888/HelloWord?name=zhuxu
- 1
加了之后就变成了这样的:
http://localhost:8888/springBoot/HelloWord?name=zhuxu
- 1
如何使用外部的配置文件
比如说在我的这个路径下C:\Users\17732\Desktop\test\application.properties有一个application.properties文件,那么怎么使用里面的配置:
右单击 ->Run As->RunConfigurations->Arguments->在里面输入--spring.config.location=路径名
比如:--spring.config.location=C:\Users\17732\Desktop\test\application.properties
- 1
- 2
如果内部外部配置有冲突,优先选择外部的
接着学习一下如何通过cmd命令调用外部配置文件
java -jar HelloWord-0.0.1-SNAPSHOT.jar --spring.config.location=C:\Users\17732\Desktop\test\application.properties
- 1
设置某一个参数,还是按照这个步骤(右单击 ->Run As->RunConfigurations->Arguments)到Arguments下
比如说只更改端口:–server.port=8882
9.springBoot的日志处理
目前springBoot用的是slf4j以及logback日志
具体如何使用日志参照下面代码:
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloWordApplicationTests {
Logger logger=LoggerFactory.getLogger(HelloWordApplicationTests.class);
@Test
public void testLog() {
logger.trace("测试Logger_Trace");
logger.debug("测试Logger_debug");
logger.info("测试Logger_Info");
logger.warn("测试Logger_warn");
logger.error("测试logger_error");
}}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
但是在测试时发现只能输出info warn 以及error中的内容,其他的内容均为输出,这是由于日志级别的问题
日志级别有:
trace debug info warn error fail off
- 1
其中默认的级别是 info,只打印info以后的,而Info以前的不给予打印
下面继续认识一下如何自定义日志级别
在主配置文件application.properties中设置:
logging.level.com.test.HelloWord=debug
其中com.test.HelloWord是主配置类的包名
- 1
- 2
这样的话就把日志的默认级别也就是最低级别调到debug
继续深入————如何把日志输出信息打印到文件中呢
在主配置文件application.properties中设置:
logging.file=D:/program/springBoot/HelloWord/log/springBoot.Log
这样的话就可以把日志信息加入到上面目录下的springBoot.Log文件中
当然还有logging.path=D:/
这样的话就直接把日志输出指定的文件夹中,默认的文件名是spring.log
- 1
- 2
- 3
- 4
- 5
下面接着看如何更改日志输出的格式
指定日志显示格式:
- 1.日志显示在控制台:
在主配置文件application.properties中设置:
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} -%msg%n
- 1
- 2
下面解释一下上面这串代码的意思:
- %d:日期时间
- %thread:打印线程名
- %-5level:显示日志级别,-5表示从左显示5个字符宽度
- %logger{50}:设置日志宽度,50表示最多只能有50个日志
- %msg:日志消息
- %n:表示显示完自动换行
- 2.日志显示在文件中:
在主配置文件application.properties中设置:
logging.pattern.file=%d{yyyy-MM-dd} ** [%thread] ** %-5level ** %logger{50} ** %msg%n
- 1
- 2
10.springBoot处理web静态资源
1.先pom.xml文件中导入jquery,Bootstrap等静态资源文件:
- jquery:
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.3.1-1</version>
</dependency>
- 1
- 2
- 3
- 4
- 5
- BootStrap
<!-- https://mvnrepository.com/artifact/org.webjars/bootstrap -->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>4.1.3</version>
</dependency>
- 1
- 2
- 3
- 4
- 5
- 6
下面简单的进行对jquery.js进行访问:
http://localhost:1234/zhiyi/webjars/jquery/3.3.1-1/jquery.js
- 1
注意:开始的是从webjars开始的
下面在看一下怎么引入自己写的静态资源,自己写的静态资源放在哪里
- 首先自定义的资源只能放在构建路径下的static或者resources目录下面
- 在访问静态资源时不用写前缀目录,比如有一个文件a.html在resources目录下,那么在访问时:
http://localhost:1234/zhiyi/Hello.html
- 1
欢迎页的实现:
在任意静态资源目录下,只要文件名叫做index.html,它就是主页,直接访问即可:
http://localhost:1234/zhiyi
- 1
下面接着看看如何更改网站的logo,任何一个网站中的logo都有一个固定名字:favicon.ico
那么如何进行更改favicon.ico呢
我们只需要将favicon.ico放在任何静态资源目录中即可
如何自定静态资源位置:
在主配置文件application.properties中设置:
spring.resources.static-locations=classpath:/res/
- 1
- 2
然后在src/main/resources下创建对应的res目录,这样的话静态资源目录除了默认的resources以及static目录,res现在也是静态资源目录了
同样访问的时候也不需要加前缀res,直接输入文件名即可:
http://localhost:1234/zhiyi/res.html
- 1
如果创建多个资源路径就这样:
spring.resources.static-locations=classpath:/res/ ,classpath:/img/
- 1
注意:一旦自定义了,默认的静态资源文件夹就会全部失效
11.引入模板引擎thymeleaf
上面学习了如何引入静态资源,那么如何引入动态资源
springBoot是不支持动态页面jsp,但是如何来替换jsp页面呢,那么就使用我们的动态模板引擎thymeleaf
那么到底什么是模板引擎:
模板引擎就是将一个网友分为两部分:
- 模板
- 数据
如何引用这个数据引擎:
在pom文件中添加依赖,这个依赖可以在maven里面直接搜索,也可以在这个网址:
https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingle/#using-boot-starter
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
</dependency>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
导入之后我们来研究第一个问题:引入thymeleaf 代码应该往哪里写
thymeleaf的代码全部放在构建路径(src/main/resources/)下的templete目录下
下面先看一个模板:
templete目录下的html:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Thymleaf</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="${welcome}">Welcome to thymeleaf!</p>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
先看一下上面这个代码片段,其他的都是模板,以后直接拿着用,但是p中有一个th:text="${welcome},会优先显示welcome中的内容
那么总结一下:th:就是替换的意思,比如:
<p id="aaa" class="aaa" th:id="${welcome}" th:class="${welcome}" th:text="${welcome}">Welcome to thymeleaf!</p>
- 1
那么如果${welcome}中有值,那么就就会有优先使用welcome中的值
在写一个controller:
@Controller
public class BootController {
@RequestMapping("/wecome")
public String wecome(Map<String, Object> map) {
map.put("welcome", "welcome_Thymeleaf");
return "result";
}}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
th后面到底可以存放哪些内容呢:
Order | Feature | Attributes |
---|---|---|
1 | Fragment inclusion | th:insert th:replace |
2 | Fragment | iteration |
3 | Conditional evaluation | th:if th:unless th:switch th:case |
4 | Local variable definition | th:object th:with |
5 | General attribute modification | th:attr th:attrprepend th:attrappend |
6 | Specific attribute modification | th:value th:href th:src … |
7 | Text (tag body modification) | th:text th:utext |
8 | Fragment specification | th:fragment |
9 | Fragment removal | th:remove |
下面重点讲一下 th:text,th:untext
- th:text:表示转义,何为转义,举一个小小的例子:
th:text="<h1>hello</h1>"
th:untext="<h1>hello</h1>"
- 1
- 2
第一个显示的是大大的标题hello,而第二个显示的是‘《h1》hello《/h1》’
下面写一个关于th:each的用法:
html页面:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Thymleaf</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet"
href="webjars/bootstrap/4.1.3/css/bootstrap.min.css">
<link rel="stylesheet"
href="webjars/bootstrap/4.1.3/css/css/bootstrap-theme.min.css">
<script src="webjars/jquery/3.3.1-1/jquery.js"></script>
<script src="webjars/bootstrap/4.1.3/css/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
<tr th:each="student : ${Students}">
<td th:text="${student.name}">姓名</td>
<td th:text="${student.age}">年龄</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
对应的controller:
@Controller
public class BootController {
@RequestMapping("/wecome")
public String wecome(Map<String, Object> map) {
map.put("welcome", "welcome_Thymeleaf");
List<Student> lStudents = new ArrayList<Student>();
lStudents.add(new Student("zx", 21));
lStudents.add(new Student("zx1", 22));
lStudents.add(new Student("zx3", 23));
lStudents.add(new Student("zx4", 24));
map.put("Students", lStudents);
return "result";
}}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
对应的Po:
public class Student {
private String name;
private Integer age;
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 Student() {
super();
}
public Student(String n,Integer a) {
super();
this.name=n;
this.age=a;
}}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
12.SpringBoot整合外置tomcat以及使用jsp开发
springBoot是不支持jsp开发的,因为jsp页面需要打成war包部署到tomcat,但是springBoot是不用打成war包就能运行,这个时候就需要使用外置的tomcat
下面接着讲一个maven的小知识:
如果pom中的依赖中有provided字样,那么在打包时不会将q以对应的插件或者文件一起打包
接着进入我们的主题:如何使用外置的tomcat,参考 点击此处
然后进行下面几个步骤:
- 1.建立基本的web目录结构:在src/main/webapp里面建立一个目录:WEB-INF
- 2.在src/main/webapp下面写jsp页面
下面讲一下如何在springBoot中配置视图解析器;
在主配置文件application.properties中添加如下代码:
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
- 1
- 2
index.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
Hello ${requestScope.name} Welcome to Index.jsp
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
Controller:
@Controller
public class WebController {
@RequestMapping("/welcome")
public String welcome(Map<String, Object>map) {
map.put("name", "朱旭");
return "index";
}}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e44c3c0e64.css" rel="stylesheet">
</div>
<div id="dmp_ad_58"><div id="kp_box_58" data-pid="58" data-track-click="{"mod":"kp_popu_58-402","con":",,"}"><div style="width:100%;background:#fff;border:3px solid #fff;padding:16px 0px 0px 0px;">
学习 Spring Boot 知识看这一篇就够了
05-28 阅读数 6万+
从2016年因为工作原因开始研究SpringBoot,先后写了很多关于SpringBoot的文章,发表在技术社区、我的博客和我的公号内。粗略的统计了一下总共的文章加起来大概有六十多篇了,其中一部分是在... 博文 来自: 纯洁的微笑
SpringBoot入门最详细教程
02-27 阅读数 12万+
网上有很多springboot的入门教程,自己也因为项目要使用springboot,所以利用业余时间自学了下springboot和springcloud,使用下来发现springboot还是挺简单的,... 博文 来自: liutong123987的专栏
第一个SpringBoot入门级项目(超详细步骤)
07-07 阅读数 1万+
开发环境: MyEcplise2017+Maven+SpringBoot+Tomcat8.5①创建一个新的Maven项目:File--&gt;New--&... 博文 来自: BADAO_LIUMANG_QIZHI的博客
Spring Boot入门级使用教程
08-16 阅读数 1万+
SpringBoot并不是一个全新的框架,而是将已有的Spring组件整合起来。特点是去掉了繁琐的XML配置,改使用约定或注解。所以熟悉了SpringBoot之后,开发效率将会提升一个档次。约定优于配... 博文 来自: 爱笑的博客
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_59" data-pid="59" data-track-view="{"mod":"kp_popu_59-78","con":",,"}" data-track-click="{"mod":"kp_popu_59-78","con":",,"}"><script type="text/javascript">
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('<div style="" id="' + s + '"></div>');
(window.slotbydup = window.slotbydup || []).push({
id: "u3491668",
container: s
});
})();
Spring Boot 入门
12-27 阅读数 28万+
SpringBoot入门SpringBoot是Spring社区较新的一个项目。该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进行入门体验,让Ja... 博文 来自: 偶尔记一下
Spring Boot -----基础入门
06-04 阅读数 23
SpringBoot介绍:SpringBoot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只需"justrun"。我们为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条... 博文 来自: wl_ang的博客
Spring Boot 入门实战
07-14 阅读数 2万+
微服务是未来发展的趋势,SpringBoot继承了Spring的优良特性,与Spring一脉相承,支持各种RESTAPI的实现方式。SpringBoot也是官方大力推荐的技术,是未来发展的一个大趋势。... 博文 来自: 倪升武的博客
一、SpringBoot 快速入门
08-27 阅读数 795
1、SpringBootHelloWorld先实现一个小功能,浏览器发送hello请求,服务器接受请求并处理,响应HelloWorld字符串;1、在IDE中创建一个Maven工程2、导入springb... 博文 来自: u012105931的博客
SpringBoot入门(一)
06-15 阅读数 30
SpringBoot配置文件路径加载配置文件相关SpringBoot默认识别application.properties文件或者application.yml文件也可以使用1、指定配置文件newSpr... 博文 来自: m0_37668842的博客
SpringBoot从入门到基本精通传送门 - 凌枫ozo的博客 - CSDN博客
6-21
博文 来自: zhiyikeji的博客 开始学springboot.pdf 01-31 这是一本pdf版的SpringBoot教材,可以看看 下载 尚硅谷springBoot从入门到精通视频教程 03-30 ...
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_60" data-pid="60" data-track-view="{"mod":"kp_popu_60-43","con":",,"}" data-track-click="{"mod":"kp_popu_60-43","con":",,"}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1561601551566_648" id="QIHOO__WEB__SO__1561601551566_648" style="display:block;margin:0;padding:0;border:none;width:900px;height:84px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1561601551566_648-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1561601551566_648 singleImage clk" data-href="https://ssxd.mediav.com/s?type=2&r=20&mv_ref=blog.csdn.net&enup=CAABdvqsGQgAAhms+nYA&mvid=ODg5OTk1MDQzNDYxODA4MjQwNjAwMTk&bid=136da3e560399e85&price=AAAAAF0UJhUAAAAAAAjiCR9YNn0QKQilQ31j8A==&finfo=DAABCAABAAAAdQgAAgAAAGMEAAM/UFo8VAR4kwAIAAIAAAADCgADXJgmXtJ8VMwIAAQAAAB1BgAGLbcGAAoAAAgADgAAABcKAA8AAAAAABHaUAA&ugi=FcTgigEVyNtrTBUCFboCFb4CFQAAFe69mv8PFoAIFcgBFoC9r6GWkcYFHBaUl4Ktu6uhuGkVAAAA&uai=FeTGlAIlAhUEFuS0oM+60Y6YuQEV8ggl5KS3hQ0lABUaFAAcFuXLjKW5kOKjIxUAAAA&ubi=FZjKWRWEquICFfrArRgVjPmHWxUEFRwW+rrPsxcW5LS1tsSXk5i5ATQCFrDgECUGFafM950LFfoFFQA2ra7jiJi01MocAA&clickid=0&cpx=__OFFSET_X__&cpy=__OFFSET_Y__&cs=__EVENT_TIME_START__&ce=__EVENT_TIME_END__&csign2=QzWflBYie8G=&url=http%3A%2F%2Fgp17.kjih.top" data-pv="https://ssxd.mediav.com/s?type=1&r=20&tid=ODg5OTk1MDQzNDYxODA4MjQwNjAwMTk&finfo=DAABCAABAAAAdQgAAgAAAGMEAAM/UFo8VAR4kwAIAAIAAAADCgADXJgmXtJ8VMwIAAQAAAB1BgAGLbcGAAoAAAgADgAAABcKAA8AAAAAABHaUAA&mv_ref=blog.csdn.net&enup=CAABdvqsGQgAAhms+nYA&mvid=ODg5OTk1MDQzNDYxODA4MjQwNjAwMTk&bid=136da3e560399e85&ugi=FcTgigEVyNtrTBUCFboCFb4CFQAAFe69mv8PFoAIFcgBFoC9r6GWkcYFHBaUl4Ktu6uhuGkVAAAA&uai=FeTGlAIlAhUEFuS0oM+60Y6YuQEV8ggl5KS3hQ0lABUaFAAcFuXLjKW5kOKjIxUAAAA&ubi=FZjKWRWEquICFfrArRgVjPmHWxUEFRwW+rrPsxcW5LS1tsSXk5i5ATQCFrDgECUGFafM950LFfoFFQA2ra7jiJi01MocAA&ds=1&price=AAAAAF0UJhUAAAAAAAjiCR9YNn0QKQilQ31j8A==,https://max-l.mediav.com/rtb?type=2&ver=1&v=CGQSEDEzNmRhM2U1NjAzOTllODUYsqOKASCisEUoAWIXODg5OTk1MDQzNDYxODA4MjQwNjAwMTmIAQA&k=qa07bwAAAAA=&w=AAAAAF0UJhUAAAAAAAjiaA08L3j3Tg_Advlqiw&i=9O5qIlVBQAgM&exp=BQBECQBEAQJEAwJEEABDEwBD&z=1" data-clk="https://max-l.mediav.com/rtb?type=3&ver=1&v=CGQSEDEzNmRhM2U1NjAzOTllODUYsqOKASCisEUoAWIXODg5OTk1MDQzNDYxODA4MjQwNjAwMTlwAA&k=pPO7fAAAAAA=&i=9O5qIlVBQAgM&exp=BQBECQBEAQJEAwJEEABDEwBD&x=__OFFSET_X__&y=__OFFSET_Y__&st=__EVENT_TIME_START__&et=__EVENT_TIME_END__&adw=__ADSPACE_W__&adh=__ADSPACE_H__&tc=&turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.mediav.com/galileo/733836-c3866f4e890864ad6233d712f3e84860.jpg)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">股神徐翔狱中曝出庄家洗盘规律,牢记这3点,看完焕然大悟!</info-div>
<info-div class="singleImage-desc">指南 · 顶新</info-div>
</info-div>
Spring Boot入门
03-27 阅读数 2万+
一、什么是SpringBoot SpringBoot是一个框架,其设计目的是简化Spring应用的初始搭建配置以及开发过程。该框架使用了特定的配置方式,从而使开发人员不在需要定义样板化的配置。二、S... 博文 来自: 程序猿的博客
专题一漫谈SpringBoot之入门到精通发布 - jack33908359..._CSDN博客
4-4
SpringBoot从入门到精通 08-28 阅读数 4879 原文链接如下:http://blog.didi...博文 来自: zhiyikeji的博客 Axure基础到实战案例全程通关视频教程-Array老师-...
Spring Boot入门,整合Pagehelper分页插件
07-23 阅读数 5401
1.环境准备参考我的上两篇博客(1)SpringBoot入门,快速搭建简单Web应用环境(2)SpringBoot入门,整合Mybatis并使用Mybatis-Generator自动生成所需代码2.在... 博文 来自: Takano的博客
<div class="recommend-item-box blog-expert-recommend-box" style="">
<div class="d-flex">
<div class="blog-expert-recommend">
<div class="blog-expert">
<div class="blog-expert-flexbox"></div>
</div>
</div>
</div>
</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{"mod":"popu_387","con":",https://blog.csdn.net/dtttyc/article/details/93069233,searchFromBaidu1_4,-"}" data-track-click="{"mod":"popu_387","con":",https://blog.csdn.net/dtttyc/article/details/93069233,searchFromBaidu1_4,-"}" data-flg="true"> <a href="https://blog.csdn.net/dtttyc/article/details/93069233" target="_blank"> <h4 class="text-truncate oneline" style="width: 872.313px;"><em>SpringBoot</em><em>入门</em>到<em>精通</em> - Judy-命中注定与众不同 - CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">6-21</span> </p> </div> <p class="content oneline" style="width: 962px;">博文 来自: zhiyikeji的博客 没头没尾--项目开发笔记:最后的笔记 04-07 ...Springboot从入门到精通 03-16 阅读数 600 本系列教程将持续更新Java现在最...</p> </a> </div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{"mod":"popu_387","con":",https://blog.csdn.net/hemin1003/article/details/82038244,searchFromBaidu1_5,-"}" data-track-click="{"mod":"popu_387","con":",https://blog.csdn.net/hemin1003/article/details/82038244,searchFromBaidu1_5,-"}" data-flg="true"> <a href="https://blog.csdn.net/hemin1003/article/details/82038244" target="_blank"> <h4 class="text-truncate oneline" style="width: 880.516px;"><em>SpringBoot</em>从<em>入门</em>到<em>精通</em>教程 - Think Different - CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">6-4</span> </p> </div> <p class="content oneline" style="width: 962px;">SpringBoot,SpringCloud入门到精通最简单教程 09-26 阅读数 4万+ SpringBoot...博文 来自: zhiyikeji的博客 Spring Boot 快速入门 (官方quick start) 01-...</p> </a> </div>
Spring Boot 入门 - 基础篇(15)- 工程部署
02-16 阅读数 15
[b](1)开发阶段[/b]一般开发过程:1)-写代码2)-[RunAs]→[SpringBootApp]启动服务3)-页面确认4)-修改代码5)-通过控制台停止服务6)-[RunAs]→[Sprin... 博文 来自: Fish Where The Fish Are
Spring Boot入门(6)前端接受后台传参
04-12 阅读数 4067
利用SpringBoot来制作Web应用,就必定会涉及到前端与后台之间互相传递参数。在SpringBoot的MVC模型中,如果采用Thymeleaf来渲染视图,则前端页面怎么才能获得后台运行传递的参数... 博文 来自: 但盼风雨来
Spring Boot 从入门到精通(三)配置文件 - 老谢的博客 - CSDN博客
6-15
在springboot中存在两种配置文件,一种是以.properties结尾的配置文件,另一种是以...博文 来自: zhiyikeji的博客 SpringBoot之《Spring Data Jpa 从入门到精通》第...
Springboot从入门到精通 - qq_21963133的博客 - CSDN博客
4-5
Java现在最热门的框架spring boot,比起传统的springmvc,springboot无疑是更加简化...博文 来自: zhiyikeji的博客 Spring Boot 2.0 从入门到精通-Secuirty 03-16...
Spring Boot入门教程(二)
06-04 阅读数 5
@SpringBootApplication项目启动入口1.先看注解@SpringBootApplication的用处,@SpringBootApplication作为整个项目的启动入口package... 博文 来自: 尼古拉斯大树的博客
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_61" data-pid="61" data-track-view="{"mod":"kp_popu_61-557","con":",,"}" data-track-click="{"mod":"kp_popu_61-557","con":",,"}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1561601551634_452" id="QIHOO__WEB__SO__1561601551634_452" style="display:block;margin:0;padding:0;border:none;width:852px;height:60px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1561601551634_452-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1561601551634_452 singleImage clk" data-href="https://s1.maqqq.com/s?type=2&r=20&mv_ref=blog.csdn.net&enup=CAABdvqsGQgAAhms+nYA&mvid=ODg5OTk1MDQzNDYxODA4MjQwNjAwMTk&bid=136da3e55f010b65&price=AAAAAF0UJhUAAAAAAAqnjdIbYtBYOR316WPd0g==&finfo=DAABCAABAAAAfggAAgAAADIEAAM/W53GQAAAAAAIAAIAAAADCgADXm608A3mZdAIAAQAAABLBgAGLbcGAAoAAAgADgAAABYKAA8AAAAAABM54AA&ugi=FcTgigEVyNtrTBUCFboCFb4CFQAAFe69mv8PFoAIFcgBFoC9r6GWkcYFHBaS4dqAzrKXtncVAAAA&uai=FaixkwIlAhUEFuS0odeS9tXuvAEV8ggl9pSNxAwlABUaFAAcFtqjxsSRrczSHxUAAAA&ubi=Fej8UxXSyOECFcSkqRgVnvX+WhUEFRwW0tfbpRcW5LS2vpy82u68ATQCFrDAkIAIJQYVs5+B1AEV3AMVADbs1/Hbz7+PydMBAA&clickid=0&cpx=__OFFSET_X__&cpy=__OFFSET_Y__&cs=__EVENT_TIME_START__&ce=__EVENT_TIME_END__&csign2=05uQDwlX54L=&url=http%3A%2F%2Fvyvobwi.cn%2F" data-pv="https://s1.maqqq.com/s?type=1&r=20&tid=ODg5OTk1MDQzNDYxODA4MjQwNjAwMTk&finfo=DAABCAABAAAAfggAAgAAADIEAAM/W53GQAAAAAAIAAIAAAADCgADXm608A3mZdAIAAQAAABLBgAGLbcGAAoAAAgADgAAABYKAA8AAAAAABM54AA&mv_ref=blog.csdn.net&enup=CAABdvqsGQgAAhms+nYA&mvid=ODg5OTk1MDQzNDYxODA4MjQwNjAwMTk&bid=136da3e55f010b65&ugi=FcTgigEVyNtrTBUCFboCFb4CFQAAFe69mv8PFoAIFcgBFoC9r6GWkcYFHBaS4dqAzrKXtncVAAAA&uai=FaixkwIlAhUEFuS0odeS9tXuvAEV8ggl9pSNxAwlABUaFAAcFtqjxsSRrczSHxUAAAA&ubi=Fej8UxXSyOECFcSkqRgVnvX+WhUEFRwW0tfbpRcW5LS2vpy82u68ATQCFrDAkIAIJQYVs5+B1AEV3AMVADbs1/Hbz7+PydMBAA&ds=1&price=AAAAAF0UJhUAAAAAAAqnjdIbYtBYOR316WPd0g==,https://max-l.mediav.com/rtb?type=2&ver=1&v=CGQSEDEzNmRhM2U1NWYwMTBiNjUY1NiJASCisEUoAWIXODg5OTk1MDQzNDYxODA4MjQwNjAwMTmIAQA&k=zDV+CAAAAAA=&w=AAAAAF0UJhUAAAAAAAqnu-Pg04FlDXeZFxbntg&i=8V_rzgVBQAh-&exp=BQBECQBEEABDEgBD&z=1" data-clk="https://max-l.mediav.com/rtb?type=3&ver=1&v=CGQSEDEzNmRhM2U1NWYwMTBiNjUY1NiJASCisEUoAWIXODg5OTk1MDQzNDYxODA4MjQwNjAwMTlwAA&k=Uq7kKQAAAAA=&i=8V_rzgVBQAh-&exp=BQBECQBEEABDEgBD&x=__OFFSET_X__&y=__OFFSET_Y__&st=__EVENT_TIME_START__&et=__EVENT_TIME_END__&adw=__ADSPACE_W__&adh=__ADSPACE_H__&tc=&turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.mediav.com/gifcompress/687924-a90699df0670ecf3582d309b313e1bfa.gif)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">网友总结瘦子的共性!照做你也能变易瘦体质</info-div>
<info-div class="singleImage-desc">悠加 · 猎媒</info-div>
</info-div>
SpringBoot从入门到精通 - JavaQ - CSDN博客
4-5
springboot从入门到精通 一步一步走向成功之路springboot从入门到精通 一步一步...博文 来自: zhiyikeji的博客 SpringBoot从入门到精通-佟刚-专题视频课程 03-...
SpringBoot从入门到精通教程
08-25 阅读数 3万+
对于SpringBoot,很多人咨询了我的研究学习资料来源,除官方文档外,特例完整整理一下自己的平时参考学习其他资料,以及分享实战项目源码和代码资源,供大家参考学习。一、来自ImportNew公众号的... 博文 来自: Think Different
Spring Boot 快速入门
07-26 阅读数 204
SpringBoot优点1.自动化配置,快速开发,轻松部署;2.很好的融入docker,支持嵌入式的tomcat、jetty等容器3.不需要打成war包,只需打成jar包直接运行即可构建项目1.通过官... 博文 来自: lihbj的博客
Spring Boot 入门之基础篇(一)
04-01 阅读数 6万+
原文地址:SpringBoot入门之基础篇(一)博客地址:http://www.extlight.com一、前言SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spri... 博文 来自: 月光中的污点
spring boot学习系列:入门第一篇
03-31 阅读数 1279
springboot学习系列:入门第一篇后续博文,开始陆陆续续介绍springboot的学习历程!工具:idea2016.3,maven,jdk1.8,mysql5.6,对于idea,我也是刚用不久,... 博文 来自: steadyjack博客
Spring Boot为简化开发而生
07-20 阅读数 569
作者介绍倪升武,前华为软件开发工程师,CSDN博客专家。毕业于同济大学,学位硕士。曾先后就职于eBay、爱奇艺、华为。熟悉C/C++、Java、Spring、SpringMVC、SpringBoot、... 博文 来自: w1028556865的博客
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_62" data-pid="62" data-track-view="{"mod":"kp_popu_62-1062","con":",,"}" data-track-click="{"mod":"kp_popu_62-1062","con":",,"}"><iframe src="https://kunpeng-sc.csdnimg.cn/#/preview/237?positionId=62&queryWord=" frameborder="0" width="100%" height="75px" scrolling="no"></iframe></div></div>
Spring Boot 入门之基础篇第一天
06-01 阅读数 500
一、前言SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置... 博文 来自: 贤和知识点收藏
Spring Boot 入门 - 目录
02-08 阅读数 29
Spring提供了一系列比如依赖注入,事务管理,MVC、REST等功能来帮助开发者构建应用。同时提供了基于XML、基于注解、基于JavaConfig的灵活配置方式。SpringBoot构建在Sprin... 博文 来自: Fish Where The Fish Are
超详细的Spring Boot入门笔记
08-24 阅读数 3万+
1.SpringBoot入门SpringBoot是Spring社区较新的一个项目。该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进行入门体验,让... 博文 来自: Lovnx
Spring Boot入门到牛X
03-15 阅读数 5099
1.SpringBoot项目下载地址:https://download.csdn.net/download/weixin_39549656/102876641.1什么是SpringBoot1.2.Sp... 博文 来自: 崔崇东的博客
Spring Boot 快速入门 (官方quick start)
01-25 阅读数 145
SpringBoot可以很简的创建单独,生产级基于Spring的应用并且可以直接运行。我们将Spring平台和第三方依赖包全部整合在一起,因些你很简单的就能使用起来。大多数的SpringBoot应用仅... 博文 来自: 无忌
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_63" data-pid="63" data-track-view="{"mod":"kp_popu_63-555","con":",,"}" data-track-click="{"mod":"kp_popu_63-555","con":",,"}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1561601551715_156" id="QIHOO__WEB__SO__1561601551715_156" style="display:block;margin:0;padding:0;border:none;width:852px;height:60px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1561601551715_156-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1561601551715_156 singleImage clk" data-href="https://s1.maqqq.com/s?type=2&r=20&mv_ref=blog.csdn.net&enup=CAABdvqsGQgAAhms+nYA&mvid=ODg5OTk1MDQzNDYxODA4MjQwNjAwMTk&bid=136da3e55f010b65&price=AAAAAF0UJhUAAAAAAAqoXnmXwZAD1o03HC5feg==&finfo=DAABCAABAAAASwgAAgAAACYEAAM/XJcuQAAAAAAIAAIAAAADCgADXm7iaivCx/AIAAQAAAArBgAGLbcGAAoAAAgADgAAABYKAA8AAAAAAAtxsAA&ugi=FcTgigEVyNtrTBUCFboCFb4CFQAAFe69mv8PFoAIFcgBFoC9r6GWkcYFHBaS4dqAzrKXtncVAAAA&uai=FaixkwIlAhUEFuS0odeS9tXuvAEV8ggl9pSNxAwlABUaFAAcFtqjxsSRrczSHxUAAAA&ubi=Fb7JVRXu39YCFYSY8BcV9Nb/WRUEFRwW2uKnqhcW5LSfws2a8e68ATQEFrDAkIAIJQYVq4Gk8Q0VwgUVADbtnZmA2NjZyKQBAA&clickid=0&cpx=__OFFSET_X__&cpy=__OFFSET_Y__&cs=__EVENT_TIME_START__&ce=__EVENT_TIME_END__&csign2=QzWflBYie8G=&url=http%3A%2F%2Fvip.xinxifang.top%2F" data-pv="https://s1.maqqq.com/s?type=1&r=20&tid=ODg5OTk1MDQzNDYxODA4MjQwNjAwMTk&finfo=DAABCAABAAAASwgAAgAAACYEAAM/XJcuQAAAAAAIAAIAAAADCgADXm7iaivCx/AIAAQAAAArBgAGLbcGAAoAAAgADgAAABYKAA8AAAAAAAtxsAA&mv_ref=blog.csdn.net&enup=CAABdvqsGQgAAhms+nYA&mvid=ODg5OTk1MDQzNDYxODA4MjQwNjAwMTk&bid=136da3e55f010b65&ugi=FcTgigEVyNtrTBUCFboCFb4CFQAAFe69mv8PFoAIFcgBFoC9r6GWkcYFHBaS4dqAzrKXtncVAAAA&uai=FaixkwIlAhUEFuS0odeS9tXuvAEV8ggl9pSNxAwlABUaFAAcFtqjxsSRrczSHxUAAAA&ubi=Fb7JVRXu39YCFYSY8BcV9Nb/WRUEFRwW2uKnqhcW5LSfws2a8e68ATQEFrDAkIAIJQYVq4Gk8Q0VwgUVADbtnZmA2NjZyKQBAA&ds=2&price=AAAAAF0UJhUAAAAAAAqoXnmXwZAD1o03HC5feg==,https://max-l.mediav.com/rtb?type=2&ver=1&v=CGQSEDEzNmRhM2U1NWYwMTBiNjUY1NiJASCisEUoAmIXODg5OTk1MDQzNDYxODA4MjQwNjAwMTmIAQA&k=aurevwAAAAA=&w=AAAAAF0UJhUAAAAAAAqoq3E-6xaCouUyuBKSxg&i=8VHrzgVBQAhB&exp=BQBECQBEEABDEgBD&z=1" data-clk="https://max-l.mediav.com/rtb?type=3&ver=1&v=CGQSEDEzNmRhM2U1NWYwMTBiNjUY1NiJASCisEUoAmIXODg5OTk1MDQzNDYxODA4MjQwNjAwMTlwAA&k=dLFEOAAAAAA=&i=8VHrzgVBQAhB&exp=BQBECQBEEABDEgBD&x=__OFFSET_X__&y=__OFFSET_Y__&st=__EVENT_TIME_START__&et=__EVENT_TIME_END__&adw=__ADSPACE_W__&adh=__ADSPACE_H__&tc=&turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.mediav.com/gifcompress/701023-14596cdc7f8543bceebaa780c385dd12.gif)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">70岁老中医:湿气重怎么办?简单1招,7天排尽体内10年湿毒,不花冤枉钱</info-div>
<info-div class="singleImage-desc">旭荣 · 猎媒</info-div>
</info-div>
SpringBoot快速入门
06-01 阅读数 473
SpringBoot简介SpringBoot来简化Spring应用开发,约定大于配置,去繁从简,justrun就能创建一个独立的、产品级别的应用。背景:J2EE笨重的开发、繁多的配置、低下的开发效率、... 博文 来自: yutao_Struggle的博客
SpringBoot入门及基础配置说明(一)
07-06 阅读数 1014
本文分五部分讲解SpringBoot基础部分,仅供入门者参考,如有纰漏,欢迎指正备注:java环境:jdk1.8+,开发环境:windows10系统下使用idea一、如何创建SpringBoot项目1... 博文 来自: Allan的博客
Spring Boot 系列(一)快速入门
07-14 阅读数 4万+
简介SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通... 博文 来自: 神奇Sam的博客
spring boot入门 -- 介绍和第一个例子
03-20 阅读数 878
“越来越多的企业选择使用springboot开发系统,springboot牛在什么地方?难不难学?心动不如行动,让我们一起开始学习吧!”使用Springboot,可以轻松的创建独立运行的程序,非常容易... 博文 来自: 易雪寒的博客
Spring Boot入门(一)基于gradle创建第一个SpringBoot项目
06-11 阅读数 367
1.SpringBoot是什么SpringBoot本身并不提供Spring框架的核心特征及扩展功能,只是用于快速、敏捷开发基于Spring的应用程序,即并不是替代Spring的方案,而是与Spring... 博文 来自: a2011102394的博客
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_64" data-pid="64" data-track-view="{"mod":"kp_popu_64-1251","con":",,"}" data-track-click="{"mod":"kp_popu_64-1251","con":",,"}"><!-- T28 位置 -->
Spring Boot 入门之web基础篇(二)
03-19 阅读数 2170
原文地址:SpringBoot入门之Web篇(二)一、前言上一篇《SpringBoot入门之基础篇(一)》介绍了SpringBoot的环境搭建以及项目启动打包等基础内容,本篇继续深入介绍SpringB... 博文 来自: 章
深入实践 Spring Boot PDF 百度云盘下载
08-07 阅读数 1万+
1.深入实践SpringBootPDF,百度云链接~~免费下载!https://pan.baidu.com/s/1He-OdFrvM52fx1q9-LOkaQ... 博文 来自: 温故而知新,可以为师矣。
springboot入门笔记
09-21 阅读数 1546
1、SpringBoot简介简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;2、微服务2014,martinfowler微服务:架构风格(服务微化... 博文 来自: CSDN
Spring Boot 学习之路——1 入门demo
04-18 阅读数 814
前言:使用SpringBoot已有一年多时间,却从未静下心来总结,今天抽空写个傻瓜式教程,巩固一下。SpringBoot的主要优点:为所有Spring开发者更快的入门开箱即用,提供各种默认配置来简化项... 博文 来自: 只是一只程序媛
Spring Boot 入门之 Web 篇(二)
04-01 阅读数 1万+
原文地址:SpringBoot入门之Web篇(二)博客地址:http://www.extlight.com一、前言上一篇《SpringBoot入门之基础篇(一)》介绍了SpringBoot的环境搭建以... 博文 来自: 月光中的污点
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_65" data-pid="65" data-track-view="{"mod":"kp_popu_65-1252","con":",,"}" data-track-click="{"mod":"kp_popu_65-1252","con":",,"}"><!-- T33 位置 -->
SpringBoot入门小案例
05-24 阅读数 1913
今天闲来无事就来学习一下SpringBoot框架,顺手搭了一个入门小案例。 SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应... 博文 来自: shuoshuo_12345的博客
Spring Boot基础教程
01-17 阅读数 5087
SpringBoot基础教程 2017-04-04被围观 190651 次该教程内容不定时更新,如您对这些内容感兴趣,可以关注我的博客或微信公众号!本教程示例代码:GitHub:https://git... 博文 来自: haiyang4988的博客
Spring boot入门一 环境搭建HelloWorld
08-30 阅读数 2万+
说在前面: 最近Springboot也火了一把,不稍微熟习下Springboot都不好意思出门了,于是我也试着看下Springboot的相关配置。概述: SpringBoot是由Pivotal团队提... 博文 来自: 漫天雪_昆仑巅
SpringBoot入门(一)--基于IDEA编译器的项目构建、启动、配置
02-21 阅读数 1032
一、项目的构建1、使用IDEA编译工具构建项目到此时我们的springboot项目构建完成二、启动项目首先我们在cn.buidlworld.demo下面建立一个HelloController.java... 博文 来自: MiChong的博客
Spring Boot入门到实战系列教程
03-27 阅读数 3335
本教程由猿天地尹吉欢进行整理,欢迎大家转载分享,请注明文章出处。SpringBoot相关课程推荐:SpringBoot从入门到精通课程SpringBootWeb开发前端性能调优从零开始手写百度云盘搜索... 博文 来自: u010889990的专栏
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_66" data-pid="66" data-track-view="{"mod":"kp_popu_66-881","con":",,"}" data-track-click="{"mod":"kp_popu_66-881","con":",,"}"><script src="https://nbrecsys.4paradigm.com/resource/cus/csdn/sdk-csdn-render.js"></script>
<div class="recommend-item-box recommend-download-box clearfix" data-track-click="{"mod":"popu_387","con":",https://download.csdn.net/download/zhang3171211/10694345,BlogCommendFromBaidu_39"}" data-flg="true">
<a href="https://download.csdn.net/download/zhang3171211/10694345" target="_blank">
<div class="content clearfix">
<div class="">
<h4 class="text-truncate oneline clearfix">
spring boot 非常容易<em>入门</em>的书 </h4>
<span class="data float-right">09-28</span>
</div>
<div class="desc oneline">
spring boot 非常容易入门的书 </div>
<span class="type-show type-show-download">下载</span>
</div>
</a>
</div>
Spring Boot 入门 (一)——建一个最简单的springboot项目
11-29 阅读数 3382
创建一个最简单的springboot项目废话不多说直接开整!!打开eclipse新建一个maven项目,目录格式如下:打开pom.xml文件,引入父依赖,web依赖,并设置JDK版本 4.0.0 co... 博文 来自: qq_17357299的博客
Spring Boot 2.0 的快速入门(图文教程)
02-05 阅读数 1万+
本文来自作者 泥瓦匠 在 GitChat 上分享「SpringBoot2.0的快速入门(图文教程)」,「阅读原文」查看交流实录。「文末高能」编辑|哈比SpringBoot 的快速入门(图文教程)大家都... 博文 来自: GitChat技术杂谈
Spring框架介绍及使用
03-17 阅读数 18万+
Spring框架—控制反转(IOC)1Spring框架概述1.1什么是Spring1.2Spring的优点1.3Spring的体系结构2入门案例:(IoC)2.1导入jar包2.2目标类2.3配置文件... 博文 来自: qq_22583741的博客
Spring boot简单入门学习
07-25 阅读数 824
Springboot简单入门学习 最近公司所有的项目架构都升级了,思想采用了微服务的思想,技术架构采用了springcloud,虽然开始了边学边用的阶段,以及踩到了不少的坑,但是里边的原理以及... 博文 来自: java_bird
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_67" data-pid="67" data-track-view="{"mod":"kp_popu_67-882","con":",,"}" data-track-click="{"mod":"kp_popu_67-882","con":",,"}"><script src="https://nbrecsys.4paradigm.com/resource/cus/csdn/sdk-csdn-render.js"></script>
springboot入门
02-24 阅读数 2534
1. 今日大纲1、 了解Spring的发展2、 掌握Spring的java配置方式3、 学习SpringBoot4、 使用SpringBoot来改造购物车系统2. Spring的发展2.1. Sp... 博文 来自: 飞腾创客
SpringBoot(1):入门
05-22 阅读数 72
SpringBoot可以以jar包的形式独立运行 内嵌Servlet容器starter简化Maven配置自动加入依赖包自动配置Spring(也支持自定义自动配置)项目监控条件注解Eclipse安装Sp... 博文 来自: 文心
【Spring Boot系列学习】01.入门helloworld
01-07 阅读数 38
一、springboot初识概念 SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使... 博文 来自: 剑翊乾坤
spring-boot2-整合(一)Mybatis-(特别完整!)
03-28 阅读数 1万+
整合Mybatis分为两种模式,一种是xml配置,一种是注解。(类似JPA)我在这里重点放在xml配置上,因为如果想用注解的话,建议直接用jpa代替,因为Jpa有更成熟的CRUD接口更方便开发。我在后... 博文 来自: _hello_world_的博客
spring boot 搭建web项目完整流程,以及遇到的一些坑坑洼洼总结
03-01 阅读数 7万+
一、springboot简介 springboot是最近非常流行的,在spring的框架上改进的框架。该框架的目的是为了提高开发人员的速度,降低配置的难度等等,极大了简化了开发流程。具体的详细的说... 博文 来自: fyhailin的专栏
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_68" data-pid="68" data-track-view="{"mod":"kp_popu_68-883","con":",,"}" data-track-click="{"mod":"kp_popu_68-883","con":",,"}"><!-- T48 位置 -->
SpringBoot入门系列:第一篇 Hello World
06-19 阅读数 32万+
跟随SpringBoot的文档(http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-d... 博文 来自: lxhjh的专栏
STM32IAP升级------IAP升级功能编写初期的一些困惑与疑问---完成功能后的总结
06-18 阅读数 1万+
IAP升级功能编写初期的一些困惑与疑问---完成功能后的总结 一,网上下载的例程,跳转部分的代码有差异,尤其是用的汇编那句 二,关于跳转部分的代码的理解(转) 三,关于跳转时能否不用按键,用软件标志位... 博文 来自: Super_Demo的专栏
在64位Win7操作系统中安装Microsoft Access Engine的解决方案
01-06 阅读数 6万+
现在的Win7系统中安装的一般都是32位的Office,因为微软推荐使用32位的Office,兼容性更强,稳定性更好。在使用Access作为数据库的时候,C#操作Access,如果Access是acc... 博文 来自: 写代码的蜗牛
百度地图开发(五)之公交信息检索 + 路线规划
03-05 阅读数 5万+
转载请注明出处: 在上一篇blog中介绍过POI检索的使用,本篇blog主要介绍公交信息检索和线路规划的内容。 公交信息检索 实际上,公交信息检索与POI检索、在线建议检索非常相似,也... 博文 来自: crazy_jack
ThreadLocal的设计理念与作用
09-25 阅读数 9万+
Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的Thread... 博文 来自: u011860731的专栏
C#实现开发windows服务实现自动从FTP服务器下载文件(自行设置分/时执行)
06-10 阅读数 3万+
最近在做一个每天定点从FTP自动下载节目.xml并更新到数据库的功能。首先想到用 FileSystemWatcher来监控下载到某个目录中的文件是否发生改变,如果改变就执行相应的操作,然后用timer... 博文 来自: kongwei521的专栏
(LaTex)CTex的初次使用心得及入门教程
11-30 阅读数 12万+
摘要 最近要发论文了,被知乎里人推荐使用论文编译软件(CTex、LaTex和Overleaf之类),瞬间感觉自己用Word简直Out了(书读少)。 学校里也听说过LaTex,不过因为当时没怎么写过... 博文 来自: tostq的专栏
如何编译64位( 64bit ) boost类库
11-17 阅读数 9582
64位windows平台,编译环境是VS2005,进入Visual Studio 2005 x64 Win64 Command Prompt(单纯的cmd也不一定不行,我没试)。把bjam.exe放... 博文 来自: rickypc的专栏
vsftpd匿名用户上传和下载的配置
10-30 阅读数 2万+
看到很多朋友配置vsftpd时不能使用匿名用户上传和下载(创建目录或删除、重命名文件夹),本文主要解决vsftpd的匿名用户权限配制问题。... 博文 来自: 九宫霓虹
高斯混合模型(GMM)及其EM算法的理解
03-02 阅读数 12万+
一个例子高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布的情况(或者是同一... 博文 来自: 小平子的专栏
Docker的三大核心概念:镜像、容器、仓库
镜像:类似虚拟机的镜像、用俗话说就是安装文件。
容器:类似一个轻量…
博文
来自: 我走小路的博客
将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化
09-05 阅读数 7万+
本篇文章是根据我的上篇博客,给出的改进版,由于时间有限,仅做了一个简单的优化。相关文章:将excel导入数据库2018年4月1日,新增下载地址链接:点击打开源码下载地址十分抱歉,这个链接地址没有在这篇... 博文 来自: Lynn_Blog
HttpClient使用详解
02-28 阅读数 81万+
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且... 博文 来自: 鹏霄万里展雄飞
最简单的命令行安装,打开终端,执行
sudo apt-get install kdevelop
2、Kdevelop汉化
不需要自己下载汉化包,…
博文
来自: lch_vision的博客
三菱FX系列PLC与PC通讯的实现之专有协议(计算机联接)的程序设计之一
02-11 阅读数 3万+
阅读内容为:FX系列微型可编程控制器用户手册(通讯篇)中计算机链接功能章节。 采用本方法通信,pc端的实现,其实就是,把操作按照协议(2种)翻译成相应的字符串,通过串口发送给plc。
编写一应用程…
博文
来自: pengjc2001的博客
强连通分量及缩点tarjan算法解析
11-16 阅读数 66万+
强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量 使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点) 定义: int Ti... 博文 来自: 九野的博客
数据结构实验:栈实现计算器(表达式计算)
12-04 阅读数 4049
原创作品转载请注明出处 欢迎抄袭,造福各位伸手党 /************************************************************************* ... 博文 来自: u013268685的专栏(有一种幸福叫AC,有一种期待叫AK)
关于SpringBoot bean无法注入的问题(与文件包位置有关)
12-16 阅读数 27万+
问题场景描述整个项目通过Maven构建,大致结构如下: 核心Spring框架一个module spring-boot-base service和dao一个module server-core 提供系统... 博文 来自: 开发随笔
伪造充值凭据(receipt)以小额凭据骗取大额商品
凭据重复使用
凭据重复使用信用卡黑卡/…
博文
来自: 分享知识、分享进步
最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦!
//js
…
博文
来自: Websites
- 先来看看错误详情
获取 VirtualBox COM 对象失败.应用程序将被中断.Failed to instantiate CLSID_VirtualBox …
博文
来自: 多点折腾少点抱怨
Java设计模式学习06——静态代理与动态代理
10-30 阅读数 3万+
一、代理模式为某个对象提供一个代理,从而控制这个代理的访问。代理类和委托类具有共同的父类或父接口,这样在任何使用委托类对象的地方都可以使用代理类对象替代。代理类负责请求的预处理、过滤、将请求分配给委托... 博文 来自: 小小本科生成长之路
蜂窝小区最短距离的坐标系解法
10-14 阅读数 2万+
如下图所示,蜂窝小区,以1为中心,顺时针编号,编号最大限定为100000。求任意两编号之间的最短距离。两个相邻小区的距离为1 示例:19到30的最短距离为5 实现如下三个接口: /**********... 博文 来自: NYS001的专栏
MATLAB中注释一段程序
12-09 阅读数 5万+
在MATLAB中,可以注释一段程序。 使用“%{”和“%}”。 例如 %{ 。。。 %} 即可。 经典方法是用 if 0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。现在可以用 ... 博文 来自: 知识小屋
<div class="recommend-item-box type_hot_word">
<div class="content clearfix" style="width: 962px;">
<div class="word float-left">
<span>
<a href="https://edu.csdn.net/courses/o5329_s5330_k " target="_blank">
机器学习教程 </a></span>
<span>
<a href="https://edu.csdn.net/courses/o280_s351_k " target="_blank">
Objective-C培训 </a></span>
<span>
<a href="https://edu.csdn.net/combos/o7115_s388_l0_t " target="_blank">
交互设计视频教程 </a></span>
<span>
<a href="https://edu.csdn.net/course/play/5599/104252 " target="_blank">
颜色模型 </a></span>
<span>
<a href="https://edu.csdn.net/combos/o363_l0_t " target="_blank">
设计制作学习 </a></span>
</div>
</div>
<div class="content clearfix" style="width: 962px;">
<div class="float-left">
<span>
<a href="https://www.csdn.net/gather_24/MtTaEg3sMDM5MS1ibG9n.html" target="_blank">
mysql关联查询两次本表</a>
</span>
<span>
<a href="https://www.csdn.net/gather_10/MtjaIg3sMTUzMy1kb3dubG9hZAO0O0OO0O0O.html" target="_blank">
native底部 react</a>
</span>
<span>
<a href="https://www.csdn.net/gather_1b/Ntzagg1sOTU3LWRvd25sb2Fk.html" target="_blank">
extjs glyph 图标</a>
</span>
<span>
<a href="https://www.csdn.net/gather_4a/MtTaIgwsNTUtZWR1.html" target="_blank">
区块链入门到精通</a>
</span>
<span>
<a href="https://www.csdn.net/gather_4a/MtzaEg3sNDYtZWR1.html" target="_blank">
云计算入门精通</a>
</span>
</div>
</div>
</div>
<div class="recommend-loading-box">
<img src="https://csdnimg.cn/release/phoenix/images/feedLoading.gif">
</div>
<div class="recommend-end-box">
<p class="text-center">没有更多推荐了,<a href="https://blog.csdn.net/" class="c-blue c-blue-hover c-blue-focus">返回首页</a></p>
</div>
</div>
</main>