SpingBoot快速入門

一、SpringBoot相關(guān)依賴
1.添加父工程坐標(biāo)
<parent>
? ? <groupId>org.springframework.boot</groupId>
? ? <artifactId>spring-boot-starter-parent</artifactId>
? ? <version>2.0.6.RELEASE</version>
</parent>
2.添加web啟動(dòng)器
<dependencies>
? ? <dependency>
? ? ? ? <groupId>org.springframework.boot</groupId>
? ? ? ? <artifactId>spring-boot-starter-web</artifactId>
? ? </dependency>
</dependencies>
3.啟動(dòng)類
@SpringBootApplication
public class TestApplication {
?
? ? public static void main(String[] args) {
? ? ? ? SpringApplication.run(TestApplication.class, args);
? ? }
?
}
二、連接數(shù)據(jù)庫(kù)
1.mysql連接池
在pom.xml中引入jdbc的啟動(dòng)器
1)引入依賴
<!--jdbc的啟動(dòng)器,默認(rèn)使用HikariCP連接池-->
<dependency>
? ? <groupId>org.springframework.boot</groupId>
? ? <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--不要忘記數(shù)據(jù)庫(kù)驅(qū)動(dòng),因?yàn)閟pringboot不知道我們使用的什么數(shù)據(jù)庫(kù),這里選擇mysql-->
<dependency>
? ? <groupId>mysql</groupId>
? ? <artifactId>mysql-connector-java</artifactId>
</dependency>
2)配置application.properties
在resources下添加。指定連接池參數(shù)
# 連接四大參數(shù)
spring.datasource.url=jdbc:mysql://localhost:3306/dms
spring.datasource.username=root
spring.datasource.password=root
# 可省略,SpringBoot自動(dòng)推斷
spring.datasource.driverClassName=com.mysql.jdbc.Driver
?
spring.datasource.hikari.idle-timeout=60000
spring.datasource.hikari.maximum-pool-size=30
spring.datasource.hikari.minimum-idle=10
2.Druid連接池
當(dāng)然,如果你更喜歡Druid連接池,也可以使用Druid官方提供的啟動(dòng)器。
<!-- Druid連接池 -->
<dependency>
? ? <groupId>com.alibaba</groupId>
? ? <artifactId>druid-spring-boot-starter</artifactId>
? ? <version>1.1.6</version>
</dependency>
#初始化連接數(shù)
spring.datasource.druid.initial-size=1
#最小空閑連接
spring.datasource.druid.min-idle=1
#最大活動(dòng)連接
spring.datasource.druid.max-active=20
#獲取連接時(shí)測(cè)試是否可用
spring.datasource.druid.test-on-borrow=true
#監(jiān)控頁(yè)面啟動(dòng)
spring.datasource.druid.stat-view-servlet.allow=true
三、整合mybatis
1.mybatis
1)引入依賴
<!--mybatis -->
<dependency>
? ? <groupId>org.mybatis.spring.boot</groupId>
? ? <artifactId>mybatis-spring-boot-starter</artifactId>
? ? <version>1.3.2</version>
</dependency>
?
2)配置application.properties
# mybatis 別名掃描
mybatis.type-aliases-package=cn.yh.pojo
# mapper.xml文件位置,如果沒有映射文件,請(qǐng)注釋掉
mybatis.mapper-locations=classpath:mappers/*.xml
2.通用mapper
1)在pom文件中導(dǎo)入依賴。
<!-- 通用mapper -->
<dependency>
? ? <groupId>tk.mybatis</groupId>
? ? <artifactId>mapper-spring-boot-starter</artifactId>
? ? <version>2.0.2</version>
</dependency>
2)Mapper層接口實(shí)現(xiàn)繼承、添加注解
@org.apache.ibatis.annotations.Mapper
public interface UserMapper extends tk.mybatis.mapper.common.Mapper<User>{
}
3)實(shí)體類
lombok依賴
? ? ? ? <!--lombok,用于給實(shí)體類添加構(gòu)造方法等-->
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>org.projectlombok</groupId>
? ? ? ? ? ? <artifactId>lombok</artifactId>
? ? ? ? </dependency>
@Data
@Table(name = "tb_user")? //想要查詢數(shù)據(jù)庫(kù)中哪張表,如果不用通用mapper這里可不寫
public class User {
? ? @Id? ? //注意,如果你想使用通用Mapper進(jìn)行CRUD,一定要加上這個(gè)@Id注解
? ? private Long id;
? ? private String userName;
? ? private String sex;??
? ??
? ? //如果數(shù)據(jù)庫(kù)中有小數(shù)字段,這里類型需要改成String??
}
4)數(shù)據(jù)庫(kù)導(dǎo)入表
CREATE TABLE `tb_user`? (
? `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
? `user_name` varchar(20)? DEFAULT NULL,
? `sex` varchar(10)? DEFAULT NULL
);
?
-- ----------------------------
-- Records of tb_user
-- ----------------------------
INSERT INTO `tb_user` VALUES (1, 'zhangsan', '男');
INSERT INTO `tb_user` VALUES (2, '李四', '');
INSERT INTO `tb_user` VALUES (3, '王五', '男');
四、整合事務(wù)
其實(shí),我們引入jdbc或者web的啟動(dòng)器,就已經(jīng)引入事務(wù)相關(guān)的依賴及默認(rèn)配置了。至于事務(wù),SpringBoot中通過(guò)注解來(lái)控制。在需要事務(wù)的方法上添加注解@Transactional
?即可。
@Service
public class UserService {
?
? ? @Autowired
? ? private UserMapper userMapper;
?
? ? public User queryById(Long id){
? ? ? ? return this.userMapper.selectByPrimaryKey(id);
? ? }
?
? ? @Transactional
? ? public void deleteById(Long id){
? ? ? ? this.userMapper.deleteByPrimaryKey(id);
? ? }
}
五、測(cè)試SpringBoot項(xiàng)目搭建
在controller層中添加測(cè)試類,訪問(wèn)?http://localhost:8080/test/one
@RestController
@RequestMapping("test")
public class BookController {
?
? ? @RequestMapping("one")
? ? public String test(){
? ? ? ? return "測(cè)試springboot";
? ? }
?
}
附:完整依賴和配置
pom.xml
<parent>
? ? ? ? <groupId>org.springframework.boot</groupId>
? ? ? ? <artifactId>spring-boot-starter-parent</artifactId>
? ? ? ? <version>2.0.6.RELEASE</version>
? ? </parent>
?
? ? <dependencies>
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>org.springframework.boot</groupId>
? ? ? ? ? ? <artifactId>spring-boot-starter-web</artifactId>
? ? ? ? </dependency>
? ? ? ? <!--jdbc的啟動(dòng)器,默認(rèn)使用HikariCP連接池-->
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>org.springframework.boot</groupId>
? ? ? ? ? ? <artifactId>spring-boot-starter-jdbc</artifactId>
? ? ? ? </dependency>
? ? ? ? <!--不要忘記數(shù)據(jù)庫(kù)驅(qū)動(dòng),因?yàn)閟pringboot不知道我們使用的什么數(shù)據(jù)庫(kù),這里選擇mysql-->
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>mysql</groupId>
? ? ? ? ? ? <artifactId>mysql-connector-java</artifactId>
? ? ? ? </dependency>
?
? ? ? ? <!--mybatis -->
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>org.mybatis.spring.boot</groupId>
? ? ? ? ? ? <artifactId>mybatis-spring-boot-starter</artifactId>
? ? ? ? ? ? <version>1.3.2</version>
? ? ? ? </dependency>
?
? ? ? ? <!-- 通用mapper -->
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>tk.mybatis</groupId>
? ? ? ? ? ? <artifactId>mapper-spring-boot-starter</artifactId>
? ? ? ? ? ? <version>2.0.2</version>
? ? ? ? </dependency>
?
? ? ? ? <!--lombook,用于給實(shí)體類添加構(gòu)造方法等-->
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>org.projectlombok</groupId>
? ? ? ? ? ? <artifactId>lombok</artifactId>
? ? ? ? </dependency>
?
? ? </dependencies>
application.properties
#端口號(hào)
server.port=8080
?
logging.level.org.springframework=debug
#logging.level.org.springframework=info
?
spring.datasource.url=jdbc:mysql://localhost:3306/自己的數(shù)據(jù)庫(kù)名
spring.datasource.username=root
spring.datasource.password=123456
?
# mybatis 別名掃描,掃到實(shí)體類,不要忘記修改自己pojo類的包路徑,例如:
mybatis.type-aliases-package=cn.ssm.pojo
# mapper.xml文件位置,如果沒有映射文件,請(qǐng)注釋掉
# mybatis.mapper-locations=classpath:mappers/*.xml