SpringBoot入门(二)

SpringBoot属性文件
1、自定义属性
uname: zhangsan

@Value("${uname}")
private String username;

2 自定义属性的引用
uname: zhangsan
age: 20
user.info: my name is ${uname}, my age is ${age}

@Value("${user.info}")
private String userInfo;

访问静态文件
项目中有两个静态文件目录:static,templates
static图片,css,js等资源 templates主要保存模板。
1.放一个文件
2.在yml文件中配置
spring:
mvc:
static-path-pattern: /static/**

默认的静态文件访问目录:
Classpath:/META-INF/resources a.png A
Classpath:resources a.png B
Classpath:static
Classpath:public

他们有一个优先级:
/META-INF/resources>resources>static>public

热部署
当项目修改的时候,我们不需要手动重启,而会自动加载。
1.添加依赖

org.springframework.boot
spring-boot-devtools
true


org.springframework.boot
spring-boot-maven-plugin

true


2.修改idea的配置

按下Ctrl+Alt+Shift+/,出现Registry

实现拦截器
之前:
实现拦截器的接口HandlerInterceptor,并实现三个方法preHandler,postHandler,afterCompletion。
然后在配置文件中,配置拦截器

现在
1.实现拦截器接口
public class MyInterceptor implements HandlerInterceptor {

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    System.out.println("MyInterceptor--preHandle");
    return true;
}

@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    System.out.println("MyInterceptor--postHandle");
}

@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    System.out.println("MyInterceptor--afterCompletion");
}

}
2.配置拦截器
@Configuration
public class MvcConfig implements WebMvcConfigurer {

@Bean
public MyInterceptor getInterceptor(){
    return new MyInterceptor();
}
//添加拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(this.getInterceptor()).addPathPatterns("/**");
}

}

总结:在SpringBoot中,我们使用java类代替配置文件。

使用JPA操作数据库
JPA是Java持久层的API,主要是一种操作数据库的标准。
Hibernate,Mybatis,SpringDataJpa都是JPA的一种实现。

1.添加依赖
Web,spirngDataJpa,mysql驱动
2.添加数据库的属性
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/tiger_springboot
username: root
password: root
jpa:
show-sql: true
3.创建数据库 tiger_springboot
4.创建表
create table user(
id int primary key auto_increment,
name varchar(32),
age int
)
5.创建实体类
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String name;
private int age;
6.写Dao
public interface UserDao extends CrudRepository<User,Integer> {
}

7.测试

@Test
public void add(){
User user = new User();
user.setName(“zhangsan”);
user.setAge(20);
userDao.save(user);
}
@Test
public void queryById(){
Optional user = userDao.findById(1);
System.out.println(user.get().getName());
}

在JPA,我们需要根据属性查询的话,可以自定义方法,JPA自动帮我们实现。
/**

  • 查询方法以find、get 、read开头
    */
    public User findByName(String name);
    终极方法:
    @Query(“from User u where u.name=:n”)
    public User findByMyName(@Param(“n”) String name);

8.写Service
@Service
public class UserServiceImpl implements UserService {

@Autowired
private UserDao userDao;

@Transactional
@Override
public void add(User user) {
    userDao.save(user);
}

@Override
public User findById(int id) {
    return userDao.findById(id).get();
}

@Override
public User findByName(String name) {
    return userDao.findByName(name);
}

}
7.写Controller
@RestController
public class UserController {

@Autowired
private UserService userService;

@GetMapping("/addUser")
public String addUser(){
    User user = new User();
    user.setName("lisi");
    user.setAge(209);
    userService.add(user);
    return "success";
}

}

8.页面(模板)
分析下Repository的接口关系
PagingAndSortingRepository 继承 CrudRepository 继承 Repository

插件lombok
插件就是小工具,当我们安装了插件,就可以实现一些小功能。
我们今天学习lombok插件,可以简化pojo。
1.安装插件
Settings-plugs–搜索lombok–install
2.添加依赖

org.projectlombok
lombok

3.简化代码
添加@Data,里面包含了@Getter,@Setter,@ToString,@EqaulAndHasCode,@NoArgContrustor

@AllArgsConstructor

总结:
我们可以在属性文件中,自定义属性,使用@Value(“${aaa}”)获得。默认我们把静态文件放到resources/static里面,静态文件的优先级是/META-INF/resources>resources>static>public。
热部署主要是在我们修改代码之后,会自动加载项目。
拦截器需要我们实现HandlerInterceptor接口,实现preHandler,postHandler,afterCompletion方法。其中preHandler返回boolean值,当true表示放行,执行后面的方法。当false的时候,拦截请求。然后通过Java配置类的方式,实现WebMvcConfigure接口,并覆写addIntercepers方法,添加拦截器。这个类里面@Configuration表示它是一个配置类,@Bean代表Spring实例化这个对象。
JPA是一种操作数据库的标准,我们使用Spring data jpa封装Hibernate。在dao中,实现了PagingAndSortingRepository 的接口,我们可以自定义属性方法和hql语句方法。
Lombok插件,通过注解简化了pojo,@Data里面包含了getter,setter,toString,noagrStruactor,
eqaulAndHashCode.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值