创建项目
各位老铁:
先检查Maven,重要事情说三遍!!!
步骤如下:
1. 如果你不小心进入了工程,那么请你大胆地退出来,我们要查看或设置全局的,不要小家子气概。
2. 我们要“Settings”
3.在这里认真配置,万无一失。
再检查JDK,麻烦要1.8的版本!!!重要事情看三遍。
下面这个图点不出,我也是服了你。
再弹出的框中如下设置,JDK你放在哪里就不用问别人了吧?
准备就绪,创建SpringBoot项目,创建的方式我知道的有三种:
第一种:进网站配置一下,下载一个项目,用IDEA打开。
第二种:创建一个maven web项目自己加依赖。
第三种:创建一个SpringBoot项目。
三种我都试过了,感兴趣的老铁可以自己去研究,网上资料不少,相信难不倒你。
有些电脑创建Module卡得死,百度一下有答案,以前学生遇到过问过我。
主要介绍第三种方式:简单易学
步骤开始:
1.创建一个Module
2.配置GAV
3.选择常用依赖
后面的界面凭感觉就知道点什么,就不截图了。
最后我们要看到如下的项目结构:
我们先跑起来,跑起来!!!由于8080端口被占用,我们要改端口,咋整?
我们要配置猫吗?不用,SpringBoot自带。
我们怎么启动?
静静等待:以下图片可以改,之前玩过改成了LOVE,不想整了,有兴趣网上查自己弄。
访问一下:啥玩意?你们猜
接下来就是分析它们都是些啥,我们怎么干?
扩展知识:(了解)
翻译:默认情况下,Spring Boot从类路径中的/static(或/public或/resources或/META-INF/resources)目录或ServletContext的根目录中提供静态内容。它使用来自Spring MVC的ResourceHttpRequestHandler,因此您可以通过添加自己的WebMvcConfigurer并覆盖addResourceHandlers方法来修改该行为。
之前写程序的时候发现不能直接访问/templates/文件夹下的html文件,原来是springboot并没有在启动的时候将/templates/文件夹映射成静态资源文件夹,所以访问html文件的是后报Http 404的错误。
|
By default, Spring Boot serves static content from a directory called /static (or /public or /resources or /META-INF/resources) in the classpath or from the root of the ServletContext. It uses the ResourceHttpRequestHandler from Spring MVC so that you can modify that behavior by adding your own WebMvcConfigurerand overridingthe addResourceHandlers method.
|
public class ResourceProperties { private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"}; private String[] staticLocations; private boolean addMappings; private final ResourceProperties.Chain chain; private final ResourceProperties.Cache cache;
public ResourceProperties() { this.staticLocations = CLASSPATH_RESOURCE_LOCATIONS; this.addMappings = true; this.chain = new ResourceProperties.Chain(); this.cache = new ResourceProperties.Cache(); }
public String[] getStaticLocations() { return this.staticLocations; }
public void setStaticLocations(String[] staticLocations) { this.staticLocations = this.appendSlashIfNecessary(staticLocations); }
|
需要在application.properties或application.yml中加入以下代码,即可访问templates中的html文件,覆盖默认加载项 spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/templates
|
基础知识点
基本注解学习:
第二种启动应用方式:
进入项目
最终如下
访问:
ctrl+C中止
第三种启动应用方式:
mvn install
dir查看进入target目录下
效果如下
二、属性文件学习
properties
yml/yaml(缩进)https://www.toyaml.com/index.html
- 如何读取文件中的值
jdbc_url: jdbc:mysql://127.0.0.1:3306/s3project?characterEncoding=UTF-8 |
用Value注解
RestController=Controller+ResponseBody
@Value("${jdbc_url")
配置中使用配置
- 如何读取实体中的值
实体要注解:
@Component @ConfigurationProperties(prefix = "user")
Application.properties中配置
Controller中使用,注入bean
@Resource private User user;
- 如何读取不同属性文件
开发环境、生产环境不同配置
配置2套:apple 苹果
application.properties中
https://www.toyaml.com/index.html
如何用命令参数启动?先停掉猫
过入工程目录
mvn install
java -jar java83-1-0.0.1-SNAPSHOT.jar --spring.profiles.active=mysql
三、控制器
Controller的使用
接收用户请求
如何跳页面
采用模板技术
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
//如何返回一个页面
@RequestMapping(value = "/list",method = RequestMethod.GET)
public String list(){
return "list";
}
FreeMarker模板
1.pom.xml添加依赖
2.application.properties配置freemarker的后缀
3.创建ftl文件
4.创建控制层访问路径
5.启动并测试
@RequestMapping使用
写在类上
写在方法上
为一个结果配置多个请求路径
第一种:
把GET改成POST
怎么测试:用插件postman
第二种
第三种
小技艺
不写id,默认为1
四、数据库操作
Spring-data-JPA 底层用的Hibernate
RestFul风格 API设计
前台 调用,请求路径,xml,json
后台RestFul接口
添加两个组件
<!-- jpa-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!---mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
配置数据源和jpa
datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/hibernate?characterEncoding=UTF-8 username: root password: 52Java jpa: hibernate: ddl-auto: create show-sql: true database-platform: org.hibernate.dialect.MySQL5InnoDBDialect #不加这句则默认为myisam引擎
由类生成表
开发接口
继承JapRepository<T,Integer>
public interface BookDao extends JpaRepository<Book,Integer> { }
开发Controller
无法注入Dao
测试数据
DROP TABLE IF EXISTS `t_book`; CREATE TABLE `t_book` ( `id` int(11) NOT NULL AUTO_INCREMENT, `isbn` varchar(9) DEFAULT NULL, `author` varchar(50) DEFAULT NULL, `name` varchar(100) DEFAULT NULL, `price` float DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
INSERT INTO `t_book` VALUES ('1', '11111', '吴承思', '西游记', '100'); INSERT INTO `t_book` VALUES ('2', '22222', '罗贯中', '三国演义', '200'); INSERT INTO `t_book` VALUES ('3', '33333', '施耐奄', '水浒传', '200'); INSERT INTO `t_book` VALUES ('4', '44444', '曹雪芹', '红楼梦', '200'); INSERT INTO `t_book` VALUES ('5', '55555', '吴道子', '天王送子图', '3000'); INSERT INTO `t_book` VALUES ('6', '66666', '李白', '静夜思', '2000'); INSERT INTO `t_book` VALUES ('7', '77777', '杜甫', '茅屋为秋风所破歌', '4000'); INSERT INTO `t_book` VALUES ('8', '88888', '白居易', '长恨歌', '2000'); |
最终结果
查所有
用软件测试
postman
测试查所有
添加
测试添加
查单个
修改
删除
扩展查询
通过作者查图书
findByName