SpringBoot基础

1.定位main应用类,Spring Boot应用的入口

我们通常建议将main应用类放在位于其他类上面的根包( root package) 中。 通常使用 @EnableAutoConfiguration 注解
main类, 并且暗地里为某些项定义了一个基础“search package”。 例如, 如果你正在编写一个JPA应用,被 @EnableAutoConfiguration 注解的类所在包将被用来自动搜索 @Entity 项。会自动加载main应用类所在的包下的注解。
使用根包允许你使用 @ComponentScan 注解而不需要定义一个 basePackage 属性。 如果main类位于根包中, 你也可以使
用 @SpringBootApplication 注解。

下面是一个典型的项目结构:

com
+- example
+- myproject
+- Application.java
| +
- domain
| +- Customer.java
| +- CustomerRepository.java
| +
- service
| +- CustomerService.java
| +
- web
+- CustomerController.java

Application.java 文件将声明 main 方法, 还有基本的 @Configuration 。

package com.example.myproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

2.配置类@configuration

Spring Boot提倡基于Java的配置。 尽管你可以使用一个XML源来调用 SpringApplication.run() , 我们通常建议你使
用 @Configuration 类作为主要源。 一般定义 main 方法的类也是主要 @Configuration 的一个很好选择。
@Configuration主要配置生成Bean的配置类。

  • 导入其他配置类
    你不需要将所有的 @Configuration 放进一个单独的类。 @Import 注解可以用来导入其他配置类。 另外, 你也可以使
    用 @ComponentScan 注解自动收集所有的Spring组件, 包括 @Configuration 类。
  • 导入xml配置
    如果你必须使用基于XML的配置, 建议你仍旧从一个 @Configuration 类开始。 可以使用附加的 @ImportResource 注
    解加载XML配置文件。

3.自动配置

Spring Boot自动配置( auto-configuration) 尝试根据你添加的jar依赖自动配置你的Spring应用。 例如, 如果你的classpath下
存在 HSQLDB , 并且你没有手动配置任何数据库连接beans, 那么我们将自动配置一个内存型( in-memory) 数据库。
你可以通过将 @EnableAutoConfiguration 或 @SpringBootApplication 注解添加到一个 @Configuration 类上来选择自动配置。
注:你只需要添加一个 @EnableAutoConfiguration 注解。 建议你将它添加到主 @Configuration 类上。

  • 逐步替换自动配置
    自动配置是非侵占性的, 任何时候你都可以定义自己的配置类来替换自动配置的特定部分。 例如, 如果你添加自己
    的 DataSource bean, 默认的内嵌数据库支持将不会被加载。
    如果需要找出当前应用了哪些自动配置及应用, 你可以使用 --debug 开关启动应用。 这将会记录一个自动配置的报告
    并输出到控制台。
  • 禁用特定的自动配置
    如果发现应用了你不想要的特定自动配置类, 你可以使用 @EnableAutoConfiguration 注解的排除属性来禁用它们。
import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {

}

4.Spring Beans和依赖注入

你可以自由地使用任何标准的Spring框架技术去定义beans和它们注入的依赖。 简单起见, 经常使用 @ComponentScan 注解搜索beans, 并结合 @Autowired 构造器注入。
如果使用上面建议的结构组织代码( 将应用类放到根包下) , 你可以添加 @ComponentScan 注解而不需要任何参数。 你的所有应用程序组件( @Component , @Service , @Repository , @Controller 等) 将被自动注册为Spring Beans

下面是一个 @Service Bean的示例, 它使用构建器注入获取一个需要的 RiskAssessor bean。

package com.example.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class DatabaseAccountService implements AccountService {
    private final RiskAssessor riskAssessor;
    @Autowired
    public DatabaseAccountService(RiskAssessor riskAssessor) {
        this.riskAssessor = riskAssessor;
    }
// ...
}

注:注意如何使用构建器注入来允许 riskAssessor 字段被标记为 final , 这意味着 riskAssessor 后续是不能改变的。

5.使用@SpringBootApplication注解

很多Spring Boot开发者总是使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 注解他们的main类。 遵循最简原则, Spring Boot提供一个方便的 @SpringBootApplication 以供选择。等同于原来的@Configuration、@EnableAutoConfiguration、@ComponentScan三个注解同时使用

下面是@SpringBootApplication的注解

package com.example.myproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
时间: 2024-11-06 07:46:07

SpringBoot基础的相关文章

(二)SpringBoot基础篇- 静态资源的访问及Thymeleaf模板引擎的使用

一.描述 在应用系统开发的过程中,不可避免的需要使用静态资源(浏览器看的懂,他可以有变量,例:HTML页面,css样式文件,文本,属性文件,图片等): 并且SpringBoot内置了Thymeleaf模板引擎,可以使用模板引擎进行渲染处理,默认版本为2.1,可以重新定义Thymeleaf的版本号,在maven的配置文件中配置如下内容: <properties> <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version> &l

SpringBoot基础学习

SpringBoot基础 回顾 JavaSE:OOP MySQL:持久化 html+css+js+jquey+框架: JavaWeb:原始MVC框架 SSM:框架,简化了开发流程,配置复杂 war:Tomcat运行 SpringBoot:内嵌tomcat,微服务架构 微服务 微服务是一种风格.要求我们在开发一个应用时,这个应用必须构建成一系列小服务的组合,可以通过http的方式进行互通 单体应用架构 指我们将一个应用中的所有应用服务器都封装在一个应用中. 无论ERP.CRM.或其他系统,都把数据

Springboot基础篇

Springboot可以说是当前最火的java框架了,非常适合于"微服务"思路的开发,大幅缩短软件开发周期. 概念 过去Spring充满了配置bean的xml文件,随着spring2.x和JDK1.5带来注解,配置大量减少,到了目前的Spring4.x和Spring Boot,更是推荐java配置的方式(这点和.NET很相似). 总体来说,Spring框架是轻量级企业开发一个完整解决方案,通过Ioc容器来管理pojo对象,其具有模块化的特点,基本的模块如下: 核心容器:Spring-C

SpringBoot基础的使用

springboot的基础使用 和 内部原理 高级使用整合 进行web开发 springboot 看下spring的所有项目:https://spring.io/projects 等等 就不一一介绍了 springboot 就是整合spring的一系列技术栈 进行简化 企业级开发 springboot 自动配置好相关的环境.用户可以使用封装好的框架进行开发 Spring全家桶”时代:   Spring Boot ? J2EE一站式解决方案.Spring Cloud ? 分布式整体解决方案 优点:

【SpringBoot】SpringBoot基础-HelloWord实例

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 这是我学习SpringBoot的入门系列哦,欢迎阅读. SpringBoot的简介我就不写一个篇章来介绍了,相信大家搜索一下,网上一大堆. 首先,SpringBoot的推出不是用来替代Spirng的,而是精简Spring的配置的.也就是优化Spirng的. 下面直接上实例吧. 环境配置: win7 Intellij IDEA 使用的是2016 1.2以后的版本 JDK1.8 Mav

SpringBoot基础梳理

1.入口类和@SpringBootApplication注解: SpringBoot通常有一个名为*Application的入口类,入口类里面有main方法,我们可以通过启动main方法启动springboot应用 @SpringBootApplication是SpringBoot的核心注解,他是一个组合注解,源码如下: 1 @Target({ ElementType.TYPE }) 2 @Retention(RetentionPolicy.RUNTIME) 3 @Documented 4 @I

springBoot基础系列--properties配置

原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7183408.html SpringBoot中免除了大部分手动配置,但是对于一些特定的情况,还是需要我们进行手动配置的,SpringBoot为我们提供了application.properties配置文件,让我们可以进行自定义配置,来对默认的配置进行修改,以适应具体的生产情况,当然还包括一些第三方的配置.几乎所有配置都可以写到application.peroperties文件中,这个文件会

springboot基础总结以及Java系统部署脚本使用

springboot学习比较总结:https://pan.baidu.com/s/1dYwvpk Java系统部署脚本: 当想把程序放到后台运行:    nohup ./your_command & 部署Java: 1. 在eclipse上使用maven打包项目:clean package 2. 找到工作目录:E:\work\mywork\ad_logsIndex\target 3. 将两个文件复制到Linux的一个目录下(我用filezilla工具来复制文件),并且写启动脚本 #!/bin/b

Shiro集成web环境[Springboot]-基础使用

Shiro集成web环境[Springboot] 1.shiro官网查找依赖的jar,其中shiro-ehcache做授权缓存时使用,另外还需要导入ehcache的jar包 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.3.2</version> </dependency&