创建springboot工程
- 创建空的工程
- 创建新的模块(不用maven骨架)
- 导入父工程坐标
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
- web项目添加web启动器(插入后出现依赖)
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
- 管理jdk版本
<properties>
<java.version>1.8</java.version>
</properties>
- springboot需要通过main函数启动,所以我们要写一个启动器类,然后就想正常那样编写代码。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- 配置写法编写application.properties或者application.yaml文件(不需要指定文件地址),推荐后者,在里面写java配置,yaml里面的缩进代表层次(还可以为pojo类实现注入)。
jdbc:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/leyou
username: root
password: 123456
server:
port: 8080
logging:
level:
cn.ithema: debug
- 在类中,则使用@ConfigurationProperties注解声明当前类为属性读取类,prefix声明前缀
@ConfigurationProperties(prefix = "jdbc")
声明在需要使用的@Bean
的方法上,然后SpringBoot就会自动调用这个Bean(此处是DataSource)的set方法,然后完成注入。使用的前提是:该类必须有对应属性的set方法!
@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
private String url;
private String driverClassName;
private String username;
private String password;
}
- lombok
引用lombok包
@Data实现pojo类的get/set方法
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
- 映射端口修改
server.port=80
-
静态资源,通常在resources新建static目录放入
-
拦截器
//定义一个拦截器
public class LoginInterceptor implements HandlerInterceptor {
private Logger logger = LoggerFactory.getLogger(LoginInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
}
}
//配置拦截器
//方法一:
@Configuration
public class MvcConfig implements WebMvcConfigurer{
/**
* 通过@Bean注解,将我们定义的拦截器注册到Spring容器
* @return
*/
@Bean
public LoginInterceptor loginInterceptor(){
return new LoginInterceptor();
}
/**
* 重写接口中的addInterceptors方法,添加自定义拦截器
* @param registry
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 通过registry来注册拦截器,通过addPathPatterns来添加拦截路径
registry.addInterceptor(this.loginInterceptor()).addPathPatterns("/**");
}
}
//方法二
@Configuration
public class MvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new Myinterceptor()).addPathPatterns("/**");
}
}
- 设置日志
logging:
level:
cn.ithema: debug
- 数据库配置,默认使用HikariCP连接池
<!-- 连接池-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- 通用mapper,写了这个会自动引入mybatis和连接池,还会自动生成驼峰-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
# mybatis 别名扫描
mybatis.type-aliases-package=com.heima.pojo
# mapper.xml文件位置,如果没有映射文件,请注释掉
mybatis.mapper-locations=classpath:mappers/*.xml
在pojo类中@Table(name="")针对的表
@Id设置主键
@KeySql(useGeneratedKeys=true)自增
@Transient表明该变量不作为数据库的数据通用mapper使用
@Mapper
public interface UserMapper extends tk.mybatis.mapper.common.Mapper<User>{
}
- springboot中test的使用
alt+/ 创建一个test
导入jar包启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
注解
@RunWith
@SpringBootTest
第一次写博客,就这样吧,写得和笔记一模一样
未完待续~~~~