- Spring的优缺点
优点:是java企业版的轻量级代替品,无需开发重量级EJB,通过依赖注入和面向切面的编程,实现EJB功能。
缺点:配置是重量级的,Spring用XML配置,很多!Spring2.5引入了基于注解扫描,Spring3.0引入java的配置(全注解方式)代替XML,一种安全可重构配置方式。
所有的配置代表开发的时间损耗。编写配置挤占编写应用程序逻辑时间。
项目依赖管理耗时。在环境搭建时需要考虑哪些库的坐标,而且还需要分析大日与之有关依赖的其他库的坐标,一旦选错了依赖版本,版本不兼容问题就很难受。
- SpringBoot的特点
对Spring的缺点进行改善和优化,基于约定优于配置的思想,可以让开发人员不必再配置与逻辑业务之间进行思维的切换,全身心投入到逻辑业务代码编写中,提高开发效率,缩减项目周期。
- 特点:
为基于Spring开发提供更快的入门体验。
开箱即用,没有代码生成,无需XML配置,同时也可以修改默认值来满足特定的需求。
提供了一些大型项目中常见的非公能性特性,如嵌入式服务器(内置Tomcat)、安全、指标、健康监测、外部配置等。
SpringBoot不是对于Spring功能上的增强,而是提供了一种快速使用Spring的方式。
SpringBoot的核心功能
- 起步依赖
本质上是一个Maven项目的对象模型(Project Object Model POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能),起步依赖就是将具有某种功能的坐标打包到一起,并提供一些默认的功能。
- 自动配置
SpringBoot的自动配置是一个运行时(更准确的说,是应用程序启动时)的过程,决定Spring配置应该用哪个,不该用哪个,该过程是Spring自动完成的)
- 搭建SpringBoot环境
- 创建Maven工程——使用IDEA创建一个maven工程
- 加入web启动依赖
-
<dependeccies> <!--web功能起步依赖> <depencency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web<artifactId> <depencency> <!--热部署配置,失败原因:IDEA中自动编译 Settings-Complier- Ctrl+shift+alt+/--Registry--auto) > <denpency> <grouId>org.springframework.boot<groupId> <artifactId>spring-boot-devtools<artifactId> <denpency> </depedeccies?
创建引导类@SpringBootApplication
- 配置application.properties文件
- 配置application.yml文件
- springboot配置文件
- Springboot是基于约定的,所以很多配置都有默认值,如果想要使用自己的配置替换默认值,可以使用application.properties或者application.yml进行配置,Springboot默认会从Resource目录下加载配置文件。
- application.yml文件配置简介
语法:Key: value
配置对象数据:
key:
key1: value1
key2: value2
或者
key: {key1: value,key2: value2}
或者list集合、数组
key:
- value1
- value2
- value3
key: [value1,value2,value3]
或者对象数据
student:
- name: tom
age: 18
adder: sichuan
-name: zhangsan
age: 17
adder: chongqing
student: [{name: tom,age: 18,adder: cishuan},{name: zhangsan,age: 17.adder: chongqing}]
- springboot集成
- SpringBoot整合Mybatis
- 添加起步依赖
<!--mysql起步依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
- 添加数据库坐标
<!--mysql连接驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connectot-java<artiactId>
</dependency>
- 添加数据库连接信息application.properties中
#数据库连接信息
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:306/test?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
#配置mybatis信息
#spring集成Mybatis环境
#pojo别名扫描包
mybatis.type-aliases-package=com.it.domain
#加载Mybatis影射文件
myatis.mapper-locations=classpath:mapper/*Mapper.xml
- 创建user表(数据库中创建)
- 创建实体bean
private Integer id;
private String username;
private String password;
private String name;
....get set()
toString()
- 编写Mapper(UserMapper.xml)
<mapper namespase="com.it.mapper.UserMapper">
<select id="queryUserList" resultType="user">
select * from user
</select>
</mapper>
- 配置Mapper映射文件
import java.util.List
@Mapper
puublic interface UserMapper{
public List<User> queryUserList();
}
- 在application.properties中添加mybatis的配置信息
#配置mybatis信息
#spring集成Mybatis环境
#pojo别名扫描包
mybatis.type-aliases-package=com.it.domain
#加载Mybatis影射文件
myatis.mapper-locations=classpath:mapper/*Mapper.xml
- 编写测试Controller
@Controller
public class MybatisController{
@RequestMapping("/query")
@ResponseBody
@Autowired
private UserMapper userMapper;
public List<User> queryUserList(){
List<User> users = userMapper.queryUserList();
return users;
}
}
- springBoot集成Junit
<!--springBoot集成JUnit测试的起步依赖-->
<denpency>
<groupId>org.springframework.boot</groupId>
<artfactId>spring-boot-starter-test</artfactId>
<socp>test</socp>
</denpency>
- 测试
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootMybatisApplication.class)
public class MybatisTest{
@Autowired
private UserMapper userMapper;
@Test
public void test(){
List<User> users = userMapper.queryUserList();
System.out.println(users);
}
}