Spring Boot使用参考
一、Spring Boot入门示例
1. 创建一个Maven工程
Group Id设为com.tuozixuan,ArtifactId设为springboot,Package设为com.tuozixuan.springboot
2. 在Maven工程的pom.xml文件中添加如下配置
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.3.RELEASE</version> </parent> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
3. 在com.tuozixuan.springboot包下创建一个Java类
@SpringBootApplication @RestController public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @RequestMapping("/") public String index() { return "index"; } }
4. 运行Application类,然后访问http://localhost:8080
5. 总结
spring-boot-starter:这是Spring Boot的核心启动器,包含自动配置、日志和YAML
spring-boot-starter-web:支持Web开发,包括Tomcat和Spring Web MVC
@SpringBootApplication:集@Configuration、@EnableAutoConfiguration、@ComponentScan三个注解功能于一身便以大家使用的注解
@RestController:相当于@Controller、@ResponseBody两个注解合在一起的作用
二、Spring Boot常用的启动器及其作用
spring-boot-starter:这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。
spring-boot-starter-actuator :帮助监控和管理应用。
spring-boot-starter-amqp :spring-rabbit来支持AMQP协议(Advanced Message Queuing Protocol)。
spring-boot-starter-aop:支持面向方面的编程即AOP,包括spring-aop和AspectJ。
spring-boot-starter-artemis:通过Apache Artemis支持JMS的API(Java Message Service API)。
spring-boot-starter-batch:支持Spring Batch,包括HSQLDB数据库。
spring-boot-starter-cache:支持Spring的Cache抽象。
spring-boot-starter-cloud-connectors:支持Spring Cloud Connectors,简化了在像Cloud Foundry或Heroku这样的云平台上连接服务。
spring-boot-starter-data-elasticsearch:支持ElasticSearch搜索和分析引擎,包括spring-data-elasticsearch。
spring-boot-starter-data-gemfire:支持GemFire分布式数据存储,包括spring-data-gemfire。
spring-boot-starter-data-jpa:支持JPA(Java Persistence API),包括spring-data-jpa、spring-orm、hibernate。
spring-boot-starter-data-MongoDB:支持MongoDB数据,包括spring-data-mongodb。
spring-boot-starter-data-rest:通过spring-data-rest-webmvc,支持通过REST暴露Spring Data数据仓库。
spring-boot-starter-data-solr:支持Apache Solr搜索平台,包括spring-data-solr。
spring-boot-starter-freemarker:支持FreeMarker模板引擎。
spring-boot-starter-groovy-templates:支持Groovy模板引擎。
spring-boot-starter-hateoas:通过spring-hateoas支持基于HATEOAS的RESTful Web服务。
spring-boot-starter-hornetq:通过HornetQ支持JMS。
spring-boot-starter-integration:支持通用的spring-integration模块。
spring-boot-starter-jdbc:支持JDBC数据库。
spring-boot-starter-jersey:支持Jersey RESTful Web服务框架。
spring-boot-starter-jta-atomikos:通过Atomikos支持JTA分布式事务处理。
spring-boot-starter-jta-bitronix:通过Bitronix支持JTA分布式事务处理。
spring-boot-starter-mail:支持javax.mail模块。
spring-boot-starter-mobile:支持spring-mobile。
spring-boot-starter-mustache:支持Mustache模板引擎。
spring-boot-starter-Redis:支持Redis键值存储数据库,包括spring-redis。
spring-boot-starter-security:支持spring-security。
spring-boot-starter-social-facebook:支持spring-social-facebook
spring-boot-starter-social-linkedin:支持spring-social-linkedin
spring-boot-starter-social-twitter:支持pring-social-twitter
spring-boot-starter-test:支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块。
spring-boot-starter-thymeleaf:支持Thymeleaf模板引擎,包括与Spring的集成。
spring-boot-starter-velocity:支持Velocity模板引擎。
spring-boot-starter-web:支持全栈式Web开发,包括Tomcat和spring-webmvc。
spring-boot-starter-websocket:支持WebSocket开发。
spring-boot-starter-ws:支持Spring Web Services。
spring-boot-starter-remote-shell:增加了远程ssh shell的支持。
spring-boot-starter-jetty:引入了Jetty HTTP引擎(用于替换Tomcat)。
spring-boot-starter-log4j:支持Log4J日志框架。
spring-boot-starter-logging:引入了Spring Boot默认的日志框架Logback。
spring-boot-starter-tomcat:引入了Spring Boot默认的HTTP引擎Tomcat。
spring-boot-starter-undertow:引入了Undertow HTTP引擎(用于替换Tomcat)。
三、Spring Boot工程操作数据库
1. 在pom.xml文件中对JDBC和MYSQL的依赖配置
<!-- JDBC支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!-- MYSQL支持 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
2. 在resources目录下创建application.properties配置文件,并添加数据库配置信息
#datasource config
spring.datasource.url=jdbc:mysql://localhost:3306/coredb
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
3. 编写访问数据的JAVA类UserDao
@Component public class UserDao { @Autowired private JdbcTemplate jdbcTemplate; public void getUser() { String sql = "select * from ts_user where userName='tuozixuan'"; Map<String, Object> userMap = jdbcTemplate.queryForMap(sql); System.out.println("userName:" + userMap.get("userName")); } }
4. 把UserDao注入到其他地方就可以使用了
@Autowired
private UserDao userDao;
四、日志处理
1. Spring Boot日志默认使用Commons Logging,并为Java Util Logging、Log4J2和Logback提供了默认配置。
2. 日志级别
默认情况下,日志输出级别为INFO
日志级别为TRACE时,TRACE、DEBUG、INFO、WARN、ERROR、FATAL的日志信息会输出
日志级别为DEBUG时,DEBUG、INFO、WARN、ERROR、FATAL的日志信息会输出
日志级别为INFO时,INFO、WARN、ERROR、FATAL的日志信息会输出
日志级别为WARN时,WARN、ERROR、FATAL的日志信息会输出
日志级别设为FATAL时,ERROR和FATAL的日志信息会输出
日志级别设为OFF时,关闭所有级别的日志信息输出
可通过在application.properties中添加logging.level.root配置来自定义日志级别,如:
#可配置项:TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF
logging.level.root=DEBUG
3. 代码中日志信息的输出
private Log log = LogFactory.getLog(Application.class);
log.trace("----------trace----------");
log.debug("----------debug----------");
log.info("----------info----------");
log.warn("----------warn----------");
log.error("----------error----------");
log.fatal("----------fatal----------");
4. 日志信息输出到文件
默认情况下Spring Boot仅在控制台输出日志信息。
如果要将日志信息输出到文件,可以通过在application.properties中添加logging.file或logging.path配置,如:
logging.file=F:/springboot.log 或 logging.path=F:/
logging.file配置可以把日志信息输出到自定义的日志文件中,日志文件会在10M大小的时候截断,产生新的日志文件
logging.path配置可以把日志信息默认输出到spring.log文件中,日志文件会在10M大小的时候截断,产生新的日志文件
5. 使用log4j日志
5.1 在pom.xml文件中加入log4j依赖
在spring-boot-starter中排除对spring-boot-starter-logging的依赖,并加入log4j的依赖
<!-- 排除对spring-boot-starter-logging的依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- 加入log4j的依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> </dependency>5.2 在resources目录下创建log4j.properties文件,并添加log4j相关配置
log4j.rootLogger=debug,ServerDailyRollingFile,stdout
log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd
log4j.appender.ServerDailyRollingFile.File=F:/springboot.log
log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p [%c] - %m%n
log4j.appender.ServerDailyRollingFile.Append=true
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d yyyy-MM-dd HH:mm:ss %p [%c] %m%n
上一篇: Oracle中使用sqlldr加载数据
下一篇: JAVA开发常用框架和工具概览
推荐阅读
-
Spring boot redis cache的key的使用方法
-
Spring Boot利用@Async如何实现异步调用:自定义线程池
-
spring cloud 使用Hystrix 实现断路器进行服务容错保护的方法
-
Spring Boot利用@Async异步调用:ThreadPoolTaskScheduler线程池的优雅关闭详解
-
spring5 webclient使用指南详解
-
Spring Boot+maven打war包的方法
-
Java Spring boot 2.0 跨域问题的解决
-
spring cloud 使用Eureka 进行服务治理方法
-
Spring + Spring Boot + MyBatis + MongoDB的整合教程
-
Spring boot + LayIM + t-io 实现文件上传、 监听用户状态的实例代码