springboot

springboot

全新框架,   简化web配置,

优点:快速开发,开箱即用,简化spring配置,启动方便维护方便

https://www.majiaxueyuan.com/course/12

https://blog.csdn.net/qq_32923745/article/category/7185049

 

不需要tomcat

 创建maven工程,导入依赖

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.5.7.RELEASE</version>

<relativePath />

</parent>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

</dependencies>

 

1.入门案例

(1)启动方式一: 
只创建一个HelloController.class

@RestController
@EnableAutoConfiguration
public class HelloController {

@RequestMapping("/hello")
public String hello(){
return "Hello";
}
public static void main(String[] args) {
SpringApplication.run(HelloController.class, args);
}
}

注意:@RestController和@Controller的区别:

      @RestController  返回JSON格式数据,,@Controller 只返回页面,显示用

运行http://localhost:8080/hello   产生结果。

 

(2)启动方式二: 常用启动方式

创建一个HelloController.class,,package com.majiaxueyuan.controller;

@RestController
public class HelloController {

@RequestMapping("/hello")
public String hello(){
return "Hello";
}
}

创建一个APP类,package com.majiaxueyuan;

@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
运行结果一样

 

2.访问静态文件方法

static 文件下,是默认访问扫描, 用来创建css/js/img 等文件。

所有的资源文件都应该在src/main/resources文件夹下面,但在SpringBoot中,系统默认扫描静态文件在static

或者public文件夹下,这里我们在src/main/resources目录下创建一个static文件夹,我们copy一张图片到static目录下,将图片命名为majiaxueyuan.png,我们启动项目并通过浏览器进行访问这张图片。

 

 http://localhost:8080/img/s.png  可以访问到

 

3.捕获异常:

 

 产生异常时,创一个Exception包

创建 GloableExceptionAop.calss 类

@ControllerAdvice
public class GloableExceptionAop {
@ExceptionHandler(RuntimeException.class)
@ResponseBody
public String runtimeException(){
return "出现异常";

}

结果:当产生异常时,页面返回  “出现异常”

 

4.Thymeleaf 引擎模版、前台数据展示

注意在前端的写法

 

JSP在运行时将要编译成一个Servlet,这样对服务器是一个大大的消耗。而今天,我们只需要使用前台模版引擎,这种方式就好比静态页面的方式,不需要占用服务器太多的资源。不在使用JSP

 

以往用JSP,但繁琐不是轻量级,springboot不推荐使用,推荐用这个引擎模版,例如 有 Thymelea      、Freemake  、Groovy 等,都是原生的html,相当于静态文件。

 

备注:(错误案例:

Description:
The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured。
方法:修改端口,     在application里边加入server.port=8888,改变端口)

 

书写方式: th: 

语法:。。。。

 

案例:

(1)application.properties中配置

#thymeleaf start
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html
#thymeleaf end

(2)导入依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

(3)创建类
@Controller
public class PageIndexController {
@RequestMapping("/index")
public String indexdemo(Model model){
List<String> list=new ArrayList<String>();
list.add("sd");
list.add("d");
list.add("s");
model.addAttribute("name","sdsdsada");
model.addAttribute("list",list);
model.addAttribute("cdfd","hjfhfgh");
return "index";
}

(4)templates下    index.html

<table>
<tr>
<td>编号</td>
</tr>
<tr th:each="l : ${list}">
<td th:text="${l}"></td> //Thymeleaf 的语法写法
</tr>
</table>

(5)结果迭代显示

 

5.springboot集成mybatis

(1)导入依赖

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.10</version>
</dependency>

<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>

(2)application.properties中配置

#mybatis
spring.datasource.url=jdbc:mysql://localhost:3306/springboot
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

(3)创建UserMapper

@Mapper
public interface UserMapper {
@Select("select * from user where id=#{id} ")
User getUserById(@Param("id") Integer id);
//(id,username,sex)
@Insert("insert into user values(NULL,#{username},#{sex});")
void insertUser(@Param("username") String username,@Param("sex") String sex);
}

(4)User.class

public class User {
private int id;
private String username;
private String sex;
get/set方法

(5)在HelloController中配置

@RestController
public class HelloController {

@Autowired
private UserMapper userMapper;
@RequestMapping("/getuser")
public Object getUser(Integer id){
return userMapper.getUserById(id);
}

@RequestMapping("/insert")
public Object insert(String username,String sex){
userMapper.insertUser(username,sex);
return "success";
}
(6)数据库创建user表id.username.sex字段
(7)显示完成,案例成功。





6.springboot事务管理
@Transactional 注解 在serviceImpl类添加
方法执行完后若无异常再执行SQL语句。

 



什么是事物???

是指多个SQL作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。

原子性:对于其数据修改,要么全都执行,要么全都不执行。

一致性:事务在完成时,必须使所有的数据都保持一致状态。

隔离性:由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。(不能同时操作一个数据)

持久性:事务完成之后,它对于系统的影响是永久性的。

 




7.配置多数据库(#)
连接多个数据库

 

一般不使用




8.集成MybatisPlus
不用写一条SQL

 

官网:http://baomidou.oschina.io/mybatis-plus-doc/

MybatisPlus是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

MP特性:无侵入,依赖少,损耗小,防SQL注入,通用CRUD,多种主键策略,代码生成,内置分页插件。


通用CRUD:集成BaseMapper就可以使用MP封装的CRU

多种主键策略IdType.AUTO(自动),IdType.INPUT(用户输入),IdType.ID_WORKER(自动),IdType.UUID(自动)。配置方法,主键ID上加上注解:@TableId(value = "ID", type = IdType.AUTO),一般情况下推荐大家使用自动增长主键。

内置分页插件Page内置分页插件。

代码生成MP自带代码生成工具,可以从Controller层直接生成到mapper层,包括实体类,让我们只关心请求地址和业务处理。

1.Mybatis-Plus的类MybatisPlusConfig  配置
2.

@Mapper

public interface UserMapper extends BaseMapper<User> 

}

ybatisPlus使用介绍:
1.分页方法没做


9.集成Lombok(未完成)
1.安装2.导入依赖

@Data   :注解在类上;提供类所有属性的 getter setter 方法,此外还提供了equalscanEqualhashCodetoString 方法

@Setter:注解在属性上;为属性提供 setting 方法

@Getter:注解在属性上;为属性提供 getting 方法

@Log4j :注解在类上;为类提供一个 属性名为log log4j 日志对象

@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法

@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法




10.shiro

Apache ShiroJava的一个安全框架。对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。

Shiro有哪些功能:身份认证/登录,授权,会话管理,加密,Web支持。

 

记住这么一点,Shiro不会去维护用户、维护权限;这些需要我们自己去设计/提供;通过Realm让开发人员自己注入。

 

 

 

 

11.全局日志管理(未完成)

SpringBoot使用AOP统一处理请求日志

传统打印日志方法:1.@Log4j      2.   log.info();

1.

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-aop</artifactId>

</dependency>

2.

新建一个包com.majiaxueyuan.log专门用来放我们的日志记录,代码如下:文档中有记载

 

 


12.springboot定时任务 @Scheduled
传统方式是使用线程
springboot中
1.
service中新建一个类ScheduledTes

@Component

public class ScheduledTest {

private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss")

@Scheduled(fixedRate = 2000)

public void scheduled() {

System.out.println("码家学院提示你==》现在时间:" + dateFormat.format(new Date()))

}

}
2.在主函数启动类上开启定时器    @EnableScheduling




13.springboot实现异步 Async
1.在service中新建一个类 AsyncTest

@Component
public class AsyncTest {
@Async
public void async(){
System.out.println("异常");
}

2.Controller类中添加注入

@Autowired
private AsyncTest asyncTest;

然后在方法中调用 asyncTest.async();

3.主函数类APP中添加注解 @EnableAsync



14.springboot自定义参数
1.在 application.properties配置中添加
例如:
2.在Controller类中添加注入

@Value("${name}")
private String name;

3.方法中添加如下,返回结果为   hellolon

@RequestMapping("/hello")
public String hello() {

return "hello"+name;
}

 

15.启动端口访问路径

只需要在配置文件中添加访问端口和访问路径就OK,一般添加在配置文件开头

server.port=9090

server.context-path=/springboot

现在只能用http://127.0.0.1:9090/springboot才能访问到项目。

 

备注:添加快捷提示,

1.https://spring.io/tools下载工具

2.install 中添加工具包,只需要添加IDE部分包

 

    

16.SpringBoot配置文件yml

SpringBoot中另外一种格式的配置文件,名为application.yml的配置文件。

 

server:

 port: 80

 context-path: /springboot

spring:

 datasource:

   username: root

   password: admin

   url: jdbc:mysql://localhost:3306/springboot_mjxy?characterEncoding=utf8

 thymeleaf:

   cache: false

   mode: LEGACYHTML5

   prefix: classpath:/templates/

   suffix: .html

如果没有高亮,请在eclipse中安装SpringToolsSuits。然后重启eclipse,选择打开方式就可以高亮了。

 

 17.多环境区分

我们可以创建多个配置文件,application-lx.yml,只需要在源配置文件上面增加下面的一个配置

spring:下面添加两行

 profiles:

   active: lx

这样系统就会优先去扫描配置文件是application-lx.yml的配置文件。

 

 

18.打包发布

1.项目右键-->Run As..-->Maven Build,打出clean package。、

2.如果报错没有主清单,pom文件中新增下面代码

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<source>1.8</source>

<target>1.8</target>

</configuration>

</plugin>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

<configuration>

<maimClass>com.majiaxueyuan.App</maimClass>

</configuration>

<executions>

<execution>

<goals>

<goal>repackage</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

 

 



3.结果产生的jar包用doc 打开,cmd,输入 java -jar 拖动jar进入doc即可。

































 

posted @ 2018-10-19 15:34  StingLon  阅读(179)  评论(0)    收藏  举报