这几天题主自学maven和SpringBoot,一路填坑,决定写一篇教程帮大家防雷。
本此采用的环境是win10,JDK 1.8 , Intellij IDEA 2017.2.5,SpringBoot 2.0.X,Mybatis 1.3.2, Oracle xe,版本上要注意的就是SpringBoot2.0以后的好像只支持JDK1.8,题主用了1.7各种无法运行。
之前mavevn的本地仓库已经搭建好了。
下面是正式搭建和整合。
首先打开Intellij IDEA ,选择左上角的File->new->project
在弹出的对话框上选择Spring Initializr ,选JDK版本1.8,点击next
它会转一会儿,处理生成模板,接下来会填一些信息,比如组别(公司小组缩写),项目名称(项目名),类型(maven或者gradle项目),编程语言选择Java,项目打包(java项目选jar,web项目选war,题主建立的是web工程), javaVersion(选8),其他默认即可,如果有自定义需求自己添。点击next。
之后选择要加入的jar包,勾选后就不用再去后面的手动添加,Intellij IDEA会帮你自动填好。这里题主选择的是web工程
点击next后会再次让你填写project名称,这里默认,直接点击finish,如果有分组需要的小伙伴自行填写。
因为IntellIJ IDEA一个窗口对应一个项目,所以finish之后会弹出对话框问是在当前窗口打开还是新窗口打开,我选择了当前窗口。
稍等一会儿后会生成目录结构如下图,生成后打开测试类,见到这个运行按钮就是建好了。
之后我们检查一下,还缺两个依赖,我们打开pom.xml加进来,然后更新一下maven,或者右下角会提示,点击import change
com.oracle
ojdbc6
1.1
org.springframework.boot
spring-boot-starter-tomcat
compile
然后可以在pom.xml中按住alt和insert,选择dependency,可以通过关键字选择jar包,和eclipse的maven插件使用一样,非常方便。
本地如果没有可以查看这个教程,下载中央仓库的jar到本地仓库如何下载maven仓库jar包到本地仓库-来自Pororo
配置IDEA使用本地maven仓库File->settings->搜索maven,更改后记得import change,刷新maven
然后我们可以进行测试,点击测试类的绿色小三角
测试成功后我们开始配置Oracle和mybatis环境。
先在application.propertise中添加数据源
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=hr
spring.datasource.password=hr
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
server.port=8989//这是更改tomcat默认端口
这里在写之前要配置包扫描,SpringBoot默认是会扫描Application入口类所在的包以及子包,从上到下。所以有时候会扫不到,还是配置上比较稳妥。
@SpringBootApplication(scanBasePackages = {"com.mybatis.demo1.controller","com.mybatis.demo1.service.impl"})
//要扫描的两个包controller和service
@EnableAutoConfiguration//此注释自动载入应用程序所需的所有Bean——这依赖于Spring Boot在类路径中的查找。
@MapperScan(basePackages = "com.mybatis.demo1.dao")//要扫描的dao包
public class Demo1Application {
public static void main(String[] args) {
SpringApplication.run(Demo1Application.class, args);
}
}
接下来开始写POJO(实体类),DAO(Mapper),Service ,Controller,根据数据库字段来新建。
User.java
根据表结构的字段来建立POJO类,get/set方法,默认无参构造如果写构造一定要写无参构造。
package com.mybatis.demo1.entity;
public class User {
private String username;
private String password;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
UserMapper.java
根据CURD写查询语句,这里采用注解方式,非必要情况不喜欢维护过多的xml。
public interface UserMapper {
@Select("SELECT * FROM TEST_USER")
public List selectAll();
}
UserService.java
调用dao,这里记得在serviceImpl上注入dao,可以从impl抽取接口UserService,也可以先写接口再实现。
@Service//标注给Spring识别位service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List getAllUser(){
return userMapper.selectAll();
}
}
UserController.java
控制层和springMVC或者Struts2没什么区别
@Controller//声明控制类
public class UserController {
@Autowired//自动注入
private UserService userService;
@RequestMapping("/getAllUser")//设置请求
@ResponseBody//json返回
public List getAllUser(){
return userService.getAllUser();
}
}
//第一行可以写 @Restcontroller(返回json的controller)
//@Restcontroller = @Controller + @ResponseBody
最后我们运行主入口类主方法(不是test类)上的绿色三角,浏览器访问设置的请求,查看结果。
如果运行保错记得把tomcat的pom依赖改一下
访问的时候直接访问RequestMapping的映射,不写项目名
看到这里你的项目搭建成功!有问题欢迎下方留言。