springboot 学习一

这篇博客详细介绍了SpringBoot的使用,包括创建项目、返回Json、热部署、数据库连接、JPA、JdbcTemplate、配置管理、定时任务、Druid数据源监控、AOP日志处理、邮件发送、单元测试、国际化支持等内容,覆盖了SpringBoot的诸多核心功能和实战技巧。
摘要由CSDN通过智能技术生成

目录

一.创建基础springboot项目

二.返回Json字符串

三.SpringBoot热部署

四.使用别的Json框架

五.全局异常捕捉

六.连接数据库

七.JPA-Hibernate 使用

八.使用JPA保存数据

九.使用jdbcTemplete

十.springboot修改端口号

十一.配置context path

十二.改变JDK编译版本

十三.处理静态资源(默认映射)

十四.定时任务的使用

十五.Spring Boot使用Druid和监控配置 数据源

十六.Spring Boot普通类调用bean

十七.使用模板(thymeleaf-freemarker)

十八.Spring Boot 添加JSP支持

十九.Spring Boot Servlet

二十.Spring Boot过滤器、监听器

二十一.Spring Boot 拦截器HandlerInterceptor

二十二.Spring Boot启动加载数据CommandLineRunner(服务加载时就调用)

二十三.Spring Boot环境变量读取和属性对象的绑定

二十四.Spring Boot使用自定义的properties

二十五.改变自动扫描的包

二十六.Spring Boot Junit单元测试

二十七.SpringBoot启动时的Banner设置 (例如springboot图标)

二十八.Spring boot 文件上传(多文件上传)

二十九.导入时如何定制spring-boot依赖项的版本

三十.Boot导入XML配置 (例:application-bean.xml)

三十一.使用@SpringBootApplication注解

三十二. 监控和管理生产环境

三十三.Spring Boot的启动器Starter详解

三十四.Spring Boot集成Redis实现缓存机制

三十五.Spring Boot Cache理论篇

三十六.Spring Boot集成EHCache实现缓存机制

三十七.Spring Boot分布式Session状态保存Redis

三十八.Spring Boot Shiro权限管理

三十九.springboot + devtools(热部署)

四十.Spring Boot 使用Java代码创建Bean并注册到Spring中

四十一.Spring Boot多数据源

四十二.Spring Boot动态数据源(多数据源自动切换)

四十三.Spring Boot日志记录SLF4J

四十四.Spring Boot MyBatis连接Mysql数据库

四十五.Spring Boot中使用AOP统一处理Web请求日志

四十六.Spring Boot发送邮件

四十七.spring boot单元测试restfull API

四十八. spring boot日志升级篇—理论

四十九.Spring Boot日志升级篇—log4j

五十.spring boot属性文件之多环境配置

五十一.spring boot日志升级篇—log4j多环境不同日志级别的控制

五十二.spring boot日志升级篇—logback

五十三.spring boot 服务配置和部署

五十四.spring boot中使用@Async实现异步调用

五十五.Spring 自定义properties升级篇

五十六.Spring 自定义properties升级篇

五十七.Spring Boot国际化(i18n)

五十八. Spring Boot Validator校验



一.创建基础springboot项目

1.1引入父工程

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.3.RELEASE</version>
  </parent>

1.2创建为web项目

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

1.3springboot入口

(1)SpringBootApplication:引入相应的配置

(2)RestController :返回json字符串,可用reful风格接口

/**
 * Date: 2018/7/28
 * Author: LLLiGJ
 * Desc: 启动类
 */
@RestController
@SpringBootApplication
public class MainClass {

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

二.返回Json字符串

2.1 返回Json字符串

/**
 * Date: 2018/7/28
 * Author: LLLiGJ
 * Desc: 返回JSON数据
 */
@RestController
@RequestMapping("/Demo001")
public class Demo001Controller {

    @RequestMapping("/getDemo001")
    public Demo001 getDemo001(){
        Demo001 demo001 = new Demo001();
        demo001.setId(1L);
        demo001.setName("LGJ");
        return demo001 ;
    }
}

2.2启动类

/**
 * Date: 2018/7/28
 * Author: LLLiGJ
 * Desc: 启动类
 */
@RestController
@SpringBootApplication
public class App {

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

三.SpringBoot热部署

3.1加入springload

(1)如果只是使用mvn spring-boot:run启动,只需加入以下

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>springloaded</artifactId>
      <version>1.2.4.RELEASE</version>
    </dependency>

(2)如果使用run as java application启动 :  打开 Preferences > Compiler , 勾选 Build project automatically

 

3.2方式二:依赖 spring-boot-devtools 热部署模块

  <!-- 热部署模块 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
    </dependency>

 

四.使用别的Json框架

4.1使用fastJson

   <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.15</version>
    </dependency>

4.2 配置fastjson ,两种配置方式

(1)启动类继承extends WebMvcConfigurerAdapter

(2)在App.java启动类中,注入Bean : HttpMessageConverters

/**
 * Date: 2018/7/28
 * Author: LLLiGJ
 * Desc: 启动类
 */
@RestController
@SpringBootApplication
public class App {

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

    @Bean
    public HttpMessageConverters fastJsonHttpMessageConverters() {
        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        fastConverter.setFastJsonConfig(fastJsonConfig);
        HttpMessageConverter<?> converter = fastConverter;
        return new HttpMessageConverters(converter);
    }
}

4.3测试

**
 * Date: 2018/7/28
 * Author: LLLiGJ
 * Desc: 返回Json内容
 */
public class Demo001 {
    private long id;//主键.

    @JSONField(serialize = false)
    private String name;//测试名称.
}

五.全局异常捕捉

5.1 在class注解上@ControllerAdvice,  在方法上注解上@ExceptionHandler(value = Exception.class)

/**
 * Date: 2018/7/29
 * Author: LLLiGJ
 * Desc: 全局异常捕捉
 */
@ControllerAdvice
public class GlobalDefaultExceptionHandler {

    @ExceptionHandler(value = Exception.class)
    public void defaultErrorHandler(HttpServletRequest req, Exception e){
        e.printStackTrace();
        System.out.println("GlobalDefaultExceptionHandler.defaultErrorHandler()");
    }

}

六.连接数据库

6.1 引入mysql

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

6.2 配置文件 resource/ application.properties

spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10

七.JPA-Hibernate 使用

7.1引入依赖

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

7.2配置 resource/application.properties

########################################################
###datasource
########################################################
spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
########################################################
### Java Persistence Api
########################################################
spring.jpa.database = mysql  
spring.jpa.show-sql = true  
spring.jpa.hibernate.ddl-auto = update  
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy  
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect 

7.3使用

@Entity
public class Demo001 {
    @Id 
    @GeneratedValue
    private long id;//主键.

    @JSONField(serialize = false)
    private String name;//测试名称.
}

八.使用JPA保存数据

8.1 http://412887952-qq-com.iteye.com/blog/2291551

九.使用jdbcTemplete

9.1http://412887952-qq-com.iteye.com/blog/2291574

9.2  dao 使用

  /**

     * 通过id获取demo对象.

     * @param id

     * @return

     */

    public Demo getById(long id){

       String sql = "select *from Demo where id=?";

       RowMapper<Demo> rowMapper = new BeanPropertyRowMapper<Demo>(Demo.class);

       return jdbcTemplate.queryForObject(sql, rowMapper,id);

    }

十.springboot修改端口号

10.1 http://412887952-qq-com.iteye.com/blog/2291576

10.2配置

server.port=9090

十一.配置context path

11.1 http://412887952-qq-com.iteye.com/blog/2291578

11.2 Spring boot默认是/ ,这样直接通过http://ip:port/就可以访问到index页面,如果要修改为http://ip:port/path/ 访问的话,那么需要在Application.properties文件中加入server.context-path = /你的path,比如:spring-boot,那么访问地址就是http://ip:port/spring-boot 路径。

11.3 配置application.properties

server.context-path=/spring-boot

十二.改变JDK编译版本

12.1 Spring Boot在编译的时候,是有默认JDK版本的,如果我们期望使用我们要的JDK版本的话

12.2 配置maven

<plugin>
   <artifactId>mave
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值