spring boot
设计目的:简化spring应用的初始搭建以及开发过程
spring环境的微服务:对原有技术的封装(spring + springMVC)
简化开发,提高开发效率(原ssm--->spring boot + mybatis)
自动配置,没有原来的XML配置文件
特点:
创建独立的spring应用程序
有内嵌入式的tomcat,所以无需部署WAR文件
还可以打成jar包
简化maven配置(3个依赖:父级项目依赖,web,test)
自动配置Spring
没有XML配置(包括web.xml,spring.xml等都不需要)
spring1.x:只有基础的aop和ioc,只能Xml配置
spring2.x:新加注解型配置,数据持久层用Xml,业务层用注解
spring3.X:新加java配置,javaConfig
spring boot约束:类似于maven约束,体现在包结构上
hello-springboot
src/main/java
com.zs.domain
com.zs.dao
com.zs.service
入口类(必须放在子包的同级目录,和dao,service同级即可)
src/main/resource
application.yml
application.yaml
application.properties
配置文件名字,必须叫application
配置文件必须存放在resources下
最常用.yml
src/test/java
src/test/resource
target
pom.xml
启动最简单的项目
引入maven依赖
配置入口类
配置端口号(默认8080,可选)
配置启动类,启动
注解剖析:
@SpringBootApplication(组合注解,一个注解可代替多个注解的功能)
等同与以下三个注解:
@Configuration(申明当前类为配置类)
@EnableAutoConfiguration(开启自动配置,开启后,比如mybatis集成的数据源对象dataSource,就不用创建了)
@ComponentScan(默认扫描入口类的同级包,也可以手动指定:@ComponentScan("com.zs"))
组件扫描:类上有以下注解的,类就是Spring的组件
@Repository(dao)
@Component(普通bean)
@Service(业务)
@Controller(控制)
Spring申明Bean的形式
1.<bean id="XXX" class="XXX"/>
2.上面四种组件注解 + 包扫描(<context:component-scan>)
3.javaConfig
@Configuration
Class JavaConfig{
@Bean
public User getUser(){
return new User();
}
}
@RestController(也是组合注解)
等同与以下两个注解
@ResponseBody
@Controller
这个注解用在类上,所有方法都需要做json序列化,不会做视图解析
注意:
SpringBoot默认支持的视图层模板是thmyleaf,也类似于jsp,html,freemark
SpringBoot默认不支持Jsp做视图层的模板
SpringBoot与MyBatis的集成
先回忆Spring与Mybatis的集成:
1.导入依赖:mybatis,druid,mybatis-spring,Spring相关
2.相关配置:
配置数据源 BasicDataSource、DruidDataSource
url(动态的)
DrverClassName(动态的)
userName(动态的)
password(动态的)
配置sqlsessionFactoryBean
typeAlias(动态的) 别名
datasoutce ref
mapperLocation(动态的) 指定Mapper文件的位置,启动时加载
配置MapperScannerConfigruation 扫描dao接口,为dao创建动态代理类(动态代理:1.JDK原生;2.cglib,基于字节码的)
sqlsessionFactoryBeanName ref
basePackage (动态的)dao接口的位置
配置声明事务
datasourceTranscationMangerment
dataSource ref
开启事务
SpringBoot与MyBatis的集成
1.导入依赖:mybatis,druid数据源,数据库驱动,mybatis-springboot整合
mabatis-spring-boot-starter
druid
mysql-connector-java
mybatis
2.相关配置:使用自动配置
url
DrverClassName
userName
password
typeAlias
mapperLocation
basePackage
day1 over