欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring Boot使用参考

程序员文章站 2022-05-11 22:21:45
...

一、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