上篇文章介绍了Spring boot初级教程:,方便大家快速入门、了解实践Spring boot特性;本篇文章接着上篇内容继续为大家介绍spring boot的其它特性(有些未必是spring boot体系桟的功能,但是是spring特别推荐的一些开源技术本文也会介绍),对了这里只是一个大概的介绍,特别详细的使用我们会在其它的文章中来展开说明。
web开发
spring boot web开发非常的简单,其中包括常用的json输出、filters、property、log等
json 接口开发
在以前的spring 开发的时候需要我们提供json接口的时候需要做那些配置呢
- 添加 jackjson 等相关jar包
- 配置spring controller扫描
就这样我们会经常由于配置错误,导致406错误等等,spring boot如何做呢,只需要类添加 @RestController
即可,默认类中的方法都会以json的格式返回
@RestControllerpublic class HelloWorldController { @RequestMapping("/getUser") public User getUser() { User user=new User(); user.setUserName("小明"); user.setPassWord("xxxx"); return user; }}
如果我们需要使用页面开发只要使用@Controller
,下面会结合模板来说明
自定义Filter
我们常常在项目中会使用filters用于录调用日志、排除有XSS威胁的字符、执行权限验证等等。Spring Boot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,并且我们可以自定义Filter。
两个步骤:
- 实现Filter接口,实现Filter方法
- 添加
@Configurationz
注解,将自定义Filter加入过滤链
好吧,直接上代码
@Configurationpublic class WebConfiguration { @Bean public RemoteIpFilter remoteIpFilter() { return new RemoteIpFilter(); } @Bean public FilterRegistrationBean testFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(new MyFilter()); registration.addUrlPatterns("/*"); registration.addInitParameter("paramName", "paramValue"); registration.setName("MyFilter"); registration.setOrder(1); return registration; } public class MyFilter implements Filter { @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain filterChain) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest request = (HttpServletRequest) srequest; System.out.println("this is MyFilter,url :"+request.getRequestURI()); filterChain.doFilter(srequest, sresponse); } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } }}
自定义Property
在web开发的过程中,我经常需要自定义一些配置文件,如何使用呢
配置在application.properties中
com.neo.title=纯洁的微笑com.neo.description=分享生活和技术
自定义配置类
@Componentpublic class NeoProperties { @Value("${com.neo.title}") private String title; @Value("${com.neo.description}") private String description; //省略getter settet方法 }
log配置
配置输出的地址和输出级别
logging.path=/user/local/loglogging.level.com.favorites=DEBUGlogging.level.org.springframework.web=INFOlogging.level.org.hibernate=ERROR
path为本机的log地址,logging.level
后面可以根据包路径配置不同资源的log级别
数据库操作
在这里我重点讲述mysql、spring data jpa的使用,其中mysql 就不用说了大家很熟悉,jpa是利用Hibernate生成各种自动化的sql,如果只是简单的增删改查,基本上不用手写了,spring内部已经帮大家封装实现了。
下面简单介绍一下如何在spring boot中使用
1、添加相jar包
org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java