springboot

SpringBoot

SpringBoot简介:
	SpringBoot对Spring的导包和配置文件进行简化开发,可以按照功能进行导包,SpringBoot不是对Spring的功能进行扩展,只是提供了一种简单快速的使用spring的方式

SpringBoot核心功能:
	起步依赖,自动配置
起步依赖:按照功能模块进行导包
自动配置:自动装配一些默认配置,约定优于配置
引导类:
@SpringBootApplication	//声明当前类是一个引导类
public class Application{
    public void main(String[] args){
		//运行SpringBoot的启动类,参数为SpringBoot启动类的字节码对象
		SpringApplication.run(Application.class);
    }
}
spring boot默认的包扫描,是引导类所在的包及其子包,即引导类的package,因此通常把引导类放在比较偏上的目录上
SpringBoot配置文件
1.查看pom.xml源码发现,spring boot启动时会自动扫描resource目录下的资源;如果不同的配置文件中出现了相同的key,下面的会覆盖上面的value,也就是说以properties为主
<includes>
    <include>**/application*.yml</include>
    <include>**/application*.yaml</include>
    <include>**/application*.properties</include>
</includes>
2.配置文件语法
properties:
	key1=value
	key1.key2=value

yml/yaml:(YAML Aint Markup Language)
配置普通数据类型: key:空格value
name: 张三
age: 18
配置对象数据类型,Map数据类型: key: 换行缩进key: value
user:	
  name: 张三		注意,对象中的属性要缩进一致;在yml语法中,相同缩进代表同一个级别
  age: 18
或者
user: {name: 张三,age: 18}  使用","来隔开多个属性
配置数组(List、Set)数据类型:	key: 换行缩进- value
list:
  - key1	减号空格value,索引从0开始
  - key2

综上: 普通数据类型key:空格value;
	 对象/Map数据类型缩进key:空格value
	 数组List数据类型缩进减号空格value
注意: 一个对象只能配置一次,比如:
person:
	name: 张三
person:
	age: 18
这样的配置是不合法的
获取配置文件中的value
name: 张三	//普通数据类型的key如果叫做username,那么只能得到当前主机名,Administrator
user:
  name: 李四
  age: 18
list:
  - 0
  - 1

第一种方式:使用@Value+SpringEL表达式获取value属性值
@Value("${name}")
private String name;
@Value("${user.name}")	//使用ognl表达式取值
private String username;
@Value("${list[0]}")
private Interger index;	//得到0

第二种方式:使用@ConfigurationProperties注解+set方法
在类上加@ConfigurationProperties(prefix="配置文件中的key的前缀"),并且提供set方法,即可完成取值
@ConfigurationProperties(prefix="user")
class....    
	private String name;	//变量名对应配置文件中的小key

第三种方式:使用内置bean对象environment.getProperty("key");
@Autowired
private Environment environment;
String username = environment.getProperty("user.name");
SpringBoot集成各种环境
1. SpringBoot整合Mybatis
第一步:添加mybatis起步依赖
第二步:在application.yml中指定JDBC连接环境和dao接口的xml扫描
第三步:在dao接口上加@Mapper注解,将接口扫描到sqlSessionFactory中,再由bean容器为接口注入代理实现类,相当于
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<property name="basePackage" value="com.pinyougou.mapper" />
</bean>
2.SpringBoot整合Junit
@RunWith(SpringRunner.class)	//SpringRunner extends SpringJUnit4ClassRunner 使用哪个类都可以
@SpringBootTest(classes=Application.class)	//指定引导类字节码,spring-->@ContextConfiguration
public class SpringBootTest1{
	....
}
3.SpringBoot整合JPA
4.SpringBoot整合redis
依赖注入redisTemplate必须指定泛型为RedisTemplate<String,String>
基于SpringBoot的JMS
生产者
@Component
public class producer{
	@Autowired	 //引入依赖后,内嵌服务
	private JmsMessagingTemplate jmsMessagingTemplate;
	@RequestMapping("/send")
    public void send(){
	   jmsMessagingTemplate.convertAndSend(String destinationName,Object message);
    }
}
消费者
@Component
public class consumer{
	@JmsListener(destination = "destinationName(跟生产者对应)")
    public void getMessage(Object message){
		.....  生产者发送的什么类型,方法参数列表就写什么类型
    }
}
application.yml
spring:
  #DB Configuration:
  #if use properties, you must add serverTimezone=UTC in url, ifnot will server time exception
  datasource:
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC        
    username: root
    password: root
  #JPA Configuration:
  jpa:
    database: MySQL
    show-sql: true
    generate-ddl: true
    hibernate:
      ddl-auto: update
      naming_strategy: org.hibernate.cfg.ImprovedNamingStrategy
  #redis Configuration
  redis:
    host: 127.0.0.1
    port: 6379

#spring集成Mybatis环境
#pojo别名扫描包
mybatis:
  type-aliases-package: com.baidu.domain
#加载Mybatis映射文件
  mapper-locations: classpath:mapper/*Dao.xml
pom.xml
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>
    <dependencies>
        <!--web的启动依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--mybatis起步依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- springBoot JPA的起步依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <!-- MySQL连接驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!-- 配置使用redis启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!--junit的起步依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--jdk9需要导入如下坐标-->
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.0</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值