spring-boot-starter 核心Spring Boot starter,包括自动配置支持,日志和YAML
spring-boot-starter-actuator 生产准备的特性,用于帮你监控和 管理应用
spring-boot-starter-web 对全栈web开发的支持,包括Tomcat和 spring-webmvc
spring-boot-starter-aop 对面向切面编程的支持,包括 spring-aop 和AspectJ
spring-boot-starter-jdbc 对JDBC数据库的支持
spring-boot-starter-security 对 spring-security 的支持

Spring Boot默认将应用打包成一个可执行的jar包文件,构建成功后使用java -jar命令即可运行应用。
或者在应用项目的主程序中运行main函数即可,不需要依赖tomcat、jetty等外部的应用服务器。
其中内置的servlet Container:

此外,你仍然可以部署Spring Boot项目到任何兼容Servlet3.0+的容器。

开启devtools特性
devtools的热部署和自动重启
要想在Eclipse中使用Devtools的重启功能,需要将自动编译功能打开。
每次保存文件并自动编译后,devtools会检测到classpath内容的修改,
并触发应用重启。重启时实际只重新加载了一部分类,因此速度会非常快。详细原理会在后面教程里介绍。
devtools的livereload
开启devtools特性的应用在启动时会启动一个livereload的server,
浏览器(如chrome,Firefox)安装livereload插件后,该插件会监测到livereload server的更新,并自动刷新页面。

@SpringBootApplication
申明让spring boot自动给程序进行必要的配置,这个配置等同于:
@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个配置

@ResponseBody
该注解修饰的函数,会将结果直接填充到HTTP的响应体中,一般用于构建RESTful的api,该注解一般会配合@RequestMapping一起使用。
示例代码:
@RequestMapping("/test")
@ResponseBody
public String test(){
return"ok";
}

@Controller
用于定义控制器类,在spring 项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般这个注解在类中,通常方法需要配合注解@RequestMapping。

@RestController
@ResponseBody和@Controller的合集。

@EnableAutoConfiguration
Spring Boot自动配置(auto-configuration):
尝试根据你添加的jar依赖自动配置你的Spring应用。
例如,如果你的classpath下存在HSQLDB,并且你没有手动配置任何数据库连接beans,那么我们将自动配置一个内存型(in-memory)数据库”。
你可以将@EnableAutoConfiguration或者@SpringBootApplication注解添加到一个@Configuration类上来选择自动配置。
如果发现应用了你不想要的特定自动配置类,你可以使用@EnableAutoConfiguration注解的排除属性来禁用它们。

@ComponentScan
表示将该类自动发现(扫描)并注册为Bean,可以自动收集所有的Spring组件,包括@Configuration类。
我们经常使用@ComponentScan注解搜索beans,并结合@Autowired注解导入。
如果没有配置的话,Spring Boot会扫描启动类所在包下以及子包下的使用了@Service,@Repository等注解的类。

@Configuration
相当于传统的xml配置文件,如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类——可以使用@ImportResource注解加载xml配置文件。
@Configuration
@EnableAutoConfiguration
public class RedisConfig {

@Bean(name="jedisPoolConfig")
@ConfigurationProperties(prefix="spring.redis")
public JedisPoolConfig getRedisConfig(){
return new JedisPoolConfig();
}
}

@PropertySource
如果需要有自定义的属性文件需要加载,可以使用该注解进行注入,并用@Value配合使用。
@Component
@PropertySource(value = "classpath:config.properties")
public class ConfigUtil {
@Value("${hos.id}")
private String hosId;
@Value("${hos.name}")
private String hosName;
}

@ImportResource
用来加载xml配置文件。

@Bean
用@Bean标注方法等价于XML中配置的bean。

@Value
注入Spring boot application.properties配置的属性的值。
@Value(value = "#{message}")
private String message;

Environment 
org.springframework.core.env.Environment,环境类,spring3.1以后开始引入。比如JDK环境,Servlet环境,Spring环境等等;每个环境都有自己的配置数据,如System.getProperties()、System.getenv()等可以拿到JDK环境数据;ServletContext.getInitParameter()可以拿到Servlet环境配置数据等等;也就是说Spring抽象了一个Environment来表示环境配置。
在springBoot中使用直接用@Resource注入,即可获得系统配置文件application.properties/yml的属性值,如果是自定义的配置文件,则需要预先通过@PropertySource等其他注解注入后,才能获取。获取通过getProperty()方法获取。

1.与MyBatis的集成
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
2、与Redis的集成
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
3、Junit进行单元测试
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>

springBoot的发布
1.将springBoot项目打包成jar
可以使用maven将项目打包成jar文件,并使用java -jar命令运行主main方法,将项目运行起来。
2.将springBoot项目打包成war
a1.pom文件的命令将<packaging>jar</packaging>修改为war。
a2.入口类实现SpringBootServletInitializer方法,重写方法:
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
a3.这里指定打包的时候不再需要tomcat相关的包
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>

Summarize:
1. SpringBoot让开发过程变得简单,开发过程中配置变得容易
2. SpringBoot让部署过程变得简单
3. SpringBoot让运维工作变得简单

缺点:
-缺少注册、发现等外围方案
-缺少外围监控集成方案
-缺少外围安全管理方案
-缺少REST落地的URI规划方案
所以SpringBoot只是一个入门级的微框架

==========================================================================================

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

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>

<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>

@RequestMapping("/list")
public ModelAndView PageList() {
String sql = "select * from student";
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
ModelAndView mav = new ModelAndView("/WEB-INF/views/list.jsp");
mav.addObject("list", list);
return mav;
}

nohup /opt/converse_jar_QA/bin/jdk1.8.0_131/bin/java -javaagent:/opt/jacoco/lib/jacocoagent.jar=destfile=/opt/converse_jar_QA/jacoco.exec,includes=com.acxiom.standard.controller -jar /opt/converse_jar_QA/bin/converse.ws.jar spring.config.location=/opt/converse_jar_QA/bin/application.properties 2>&1 &

application.yml 中 配置DB的Sample

注意缩进, 冒号之后的空格

spring:
datasource:
name: test
url: jdbc:sqlserver://xxxxxxxx:1433;databaseName=xxx
username: xxxxx
password: P3b#xxx*
# 使用druid数据源
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20

Springboot 学习笔记 之 Day 4 笔记部分的更多相关文章

  1. SpringBoot学习笔记

    SpringBoot个人感觉比SpringMVC还要好用的一个框架,很多注解配置可以非常灵活的在代码中运用起来: springBoot学习笔记: .一.aop: 新建一个类HttpAspect,类上添 ...

  2. Springboot学习笔记(六)-配置化注入

    前言 前面写过一个Springboot学习笔记(一)-线程池的简化及使用,发现有个缺陷,打个比方,我这个线程池写在一个公用服务中,各项参数都定死了,现在有两个服务要调用它,一个服务的线程数通常很多,而 ...

  3. SpringBoot学习笔记(14):使用SpringBootAdmin管理监控你的应用

    SpringBoot学习笔记(14):使用SpringBootAdmin管理监控你的应用 Spring Boot Admin是一个管理和监控Spring Boot应用程序的应用程序.本文参考文档: 官 ...

  4. SpringBoot学习笔记(3):静态资源处理

    SpringBoot学习笔记(3):静态资源处理 在web开发中,静态资源的访问是必不可少的,如:Html.图片.js.css 等资源的访问. Spring Boot 对静态资源访问提供了很好的支持, ...

  5. SpringBoot学习笔记(2):引入Spring Security

    SpringBoot学习笔记(2):用Spring Security来保护你的应用 快速开始 本指南将引导您完成使用受Spring Security保护的资源创建简单Web应用程序的过程. 参考资料: ...

  6. SpringBoot学习笔记(7):Druid使用心得

    SpringBoot学习笔记(7):Druid使用心得 快速开始 添加依赖 <dependency> <groupId>com.alibaba</groupId> ...

  7. SpringBoot学习笔记(4):与前端交互的日期格式

    SpringBoot学习笔记(4):与前端交互的日期格式 后端模型Date字段解析String 我们从前端传回来表单的数据,当涉及时间.日期等值时,后端的模型需将其转换为对应的Date类型等. 我们可 ...

  8. SpringBoot学习笔记(4):添加自定义的过滤器

    SpringBoot:学习笔记(4)——添加自定义的过滤器 引入自定义过滤器 SpringBoot提供的前端控制器无法满足我们产品的需求时,我们需要添加自定义的过滤器. SpringBoot添加过滤器 ...

  9. SpringBoot学习笔记(13):日志框架

    SpringBoot学习笔记(13):日志框架——SL4J 快速开始 说明 SpringBoot底层选用SLF4J和LogBack日志框架. SLF4J的使用 SpringBoot的底层依赖关系 1. ...

  10. SpringBoot学习笔记(12):计划任务

    SpringBoot学习笔记(12):计划任务 计划任务 在企业的实践生产中,可能需要使用一些定时任务,如月末.季末和年末需要统计各种各样的报表,每周自动备份数据等. 在Spring中使用定时任务 1 ...

随机推荐

  1. zabbix3.0 centos7 yum 安装与简单配置

    参考文档https://www.zabbix.com/documentation/3.0/start zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zab ...

  2. storm并发机制,通信机制,任务提交

    一.storm的并发 (1)Workers(JVMs):在一个物理节点上可以运行一个或多个独立的JVM进程.一个Topology可以包含一个或多个worker(并行的跑在不同的物理机上),所以work ...

  3. NOSQL学习之一:Memcached, Redis, MongoDB区别

    Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理. Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. MongoDB是一个基于分布 ...

  4. python json-json.loads()函数中的字符串需要是严格的json串格式,不能包含单引号

    先看下json的dumps()和loads()函数的定义 json.dumps():将一个Python对象编码成JSON字符串.把字典对象转换成json串 json.loads():将JSON格式字符 ...

  5. Centos7下PHP的卸载与安装nginx

    Centos7下PHP的卸载与安装nginx CentOS上PHP完全卸载,想把PHP卸载干净,直接用yum的remove命令是不行的,需要查看有多少rpm包,然后按照依赖顺序逐一卸载. 1.首先查看 ...

  6. 谈话准备.xmind 思维导图模版

    谈话准备.xmind 思维导图模版,谈话准备.xmind.zip 谈话准备 目标 1…… 2…… 3…… 影响决定因素 进程 经费 策略 问题 客户 竞争对手 竞争对手 潜在 现存 问题 个性 团队 ...

  7. python3.4学习笔记(七) 学习网站博客推荐

    python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...

  8. JMeter:全面的乱码解决方案

    中文乱码一直都是比较让人棘手的问题,我们在使用Jmeter的过程中,也会遇到中文乱码问题 接口:http://127.0.0.1:8090/test 这个接口有一个参数name,返回结果就是你传的na ...

  9. MySQL之表连接(内外连接和重命名的使用)

    #要多练练 1.连接查询根据连接方式分为 内连接 等值连接 非等值连接 自连接 外连接 左外连接(左连接) 右外连接(右连接) 当多张表进行连接查询,若没有任何条件进行限制,会 发生什么现象? 会出现 ...

  10. python进程编程

    多进程multiprocess模块 multiprocessing is a package that supports spawning processes using an API similar ...