springboot 初步使用
准备工作:
1.先建表
CREATE TABLE `tb_hero` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT NULL, `profession` varchar(255) DEFAULT NULL, `phone` varchar(255) DEFAULT NULL, `email` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; INSERT INTO `tb_hero` VALUES ('1', '鲁班', '射手', '13499887733', '12341241@qq.com',"2020-02-18"); INSERT INTO `tb_hero` VALUES ('2', '李白', '刺客', '18977665521', 'libai@163.com',"2020-02-18"); INSERT INTO `tb_hero` VALUES ('3', '阿轲', '刺客', '18977665997', 'aike@qq.com',"2020-02-18"); INSERT INTO `tb_hero` VALUES ('4', '德玛', '肉盾', '13700997665', 'demaxiya.126.com6',"2020-02-18"); INSERT INTO `tb_hero` VALUES ('5', '亚索', '战士', '13586878987', 'yasuo@qq.com',"2020-02-18"); INSERT INTO `tb_hero` VALUES ('6', '奶妈', '辅助', '13398909089', 'nama@qq.com',"2020-02-18"); INSERT INTO `tb_hero` VALUES ('7', '剑圣', '刺客', '13398909088', 'jiansheng@163.com',"2020-02-18"); INSERT INTO `tb_hero` VALUES ('8', '盖伦', '肉盾', '15923242231', 'gailun@126.com',"2020-02-18"); INSERT INTO `tb_hero` VALUES ('9', '锤石', '辅助', '13398908900', '8888@163.com',"2020-02-18"); INSERT INTO `tb_hero` VALUES ('10', '阿木', '辅助', '13398908928', '13398908928@qq.com',"2020-02-18");

2.建立pojo类:
public class TbHero { private Integer id; private String username; private String profession; private String phone; private String email; }
配置spring-mvc
1.配置application.yum,先配置端口 后面配置文件未指定的话默认在application.yum加入配置
server:
port: 80
2.关于静态文件:
springboot没有web-inf或者web-app文夹,静态文件默认放在这四个位:

3.日志级别:需要Slf4j包
可以在项目中根据热值检查运行状态,比如在调试时,log.info()输出,后面完成后调成debug级别,前面就看不到了。
使用方法 :private static final Logger log = LoggerFactory.getLogger(MyInterceptor.class);
log.info(""):
log.debug(""):
log.error("');
配置日志级别,写在配置文件中
ogging:
level:
com.wangid3: debug
path: "C:/Users/23058/Desktop/forJob/Springboot/log/test.log"
4.拦截器配置:
自定义拦截器:
@Slf4j public class MyInterceptor implements HandlerInterceptor { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { log.debug("MyInterceptor------preHandle"); return true; } public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception { } public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception { } }
对自定义的拦截器进行配置使用
@Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**"); } }
注解扫描-自动配置完成
包扫描-内部自带了包扫描
视图解析器-springboot当中不支持jsp,无需配置
以上三个又不用管
配置JDBC
1. 配置pom.xml
1)添加jdbc启动器
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
2)添加Mysql数据库驱动
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
2 .配置连接参数(application.yum)
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/springboot?characterEncoding=utf-8
username: root
password: 1234
3.添加Mybatis启动器(关于mybatis,后面会单开帖子,目前不详细展开)
1)在pom.xml中添加mybatis启动器
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency>
2)在application.yum中配置mybatis内部细节,比如别名与配置mapper文件地址
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml
type-aliases-package: com.wangid3.pojo
3)mapper接口扫描,在启动类main方法上面注解
@SpringBootApplication @MapperScan("com.wangid3.mapper") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }
通用mapper
通用Mapper都可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。极其方便的使用MyBatis单表的增删改查。
但是只支持单表操作,不支持通用的多表联合查询。
1. 引入启动类:
<dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.5</version> </dependency>
2.相较于spring,mapper得到简化,使用时, 直接在接口上继续Mapper<实体类>
public interface HeroMapper extends Mapper<Hero> { }
以前需要自己写方法, 现在不用自己写,直接继承
也不需要在Mapper文件当中写sql了 底层会利用Mybatis的可拦截原理,帮你把方法的sql动态生成了
通用mapper已经引入了springboot jdbc Mybatis,就不需要再单独引入了
启动类也可改成通用mapper的启动类,通过mapper在扫描时, 去自动生成sql
3.在Pojo中指定表名与相关主键属性@Transient表示将不需要序列化的属性,不会在数据库生成相应字段
@Data @Table(name = "tb_hero") public class Hero { @Id @KeySql(useGeneratedKeys = true) private Integer id; private String username; private String profession; @Transient private String phone; private String email; private Date onlinetime; }
创建Service并调用执行
service层与一般spring无大区别:
@Service public class HeroServiceImpl implements HeroService { @Resource private HeroMapper heroMapper; @Override public List<Hero> getAllHero() { List<Hero> heroes = heroMapper.selectAll(); System.out.println(heroes); return heroMapper.getAllHero(); } }
public interface HeroService { public List<Hero> getAllHero(); }
如果想使用事务,只需要在添加事务的方法上, 添加注解@Transactional
浙公网安备 33010602011771号