springboot学习收获
自己一些总结
修改网站小图标
1、在application.properties
中配:spring.mvc.favicon.enabled = false
2、网站图片命名为favicon.ico
;
3、将favicon.ico
放在resources/static
目录下;
4、ok,结束ヾ(◍°∇°◍)ノ゙
启动彩蛋
springboot项目启动总会打印一下内容,想要更换怎么办?
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.4.0.RELEASE)
1、在resource
目录下面放入一个banner.txt
文件,Spring Boot启动项目的时候就会优先启动这个文件中的内容;
2、在里面存放要打印的内容;
3、文件中:Spring Boot提供了一个枚举类AnsiColor,通过${AnsiColor.BRIGHT_YELLOW}
来控制文件中字符的颜色,${spring-boot.version}
这个是springboot的版本号;
4、ok啦啦啦…
额外
${application.version} 这个是MANIFEST.MF文件中的版本号
${application.formatted-version} 这个是上面的的版本号前面加v后上括号
${spring-boot.version} 这个是springboot的版本号
${spring-boot.formatted-version} 同上
统一异常处理
404等错误
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.web.servlet.ErrorPage;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;
@Configuration
public class WebConfiguration {
@Bean
public EmbeddedServletContainerCustomizer proEmbeddedServletContainerCustomizer() {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
//如果是静态页面的异常处理,如404错误,此方式不能传递异常具体信息
//错误页面需要放在Spring Boot web应用的static内容目录下,它的默认位置是:src/main/resources/static,
container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/error/404.action"));
container.addErrorPages(new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error/500.action"));
}
};
}
}
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import javax.servlet.http.HttpServletRequest;
@Controller
public class ErrorController {
@RequestMapping(value = "/error/404.action")
@ResponseStatus( HttpStatus.OK )
public String pageNotFound(HttpServletRequest req, HttpServletRequest response) {
req.setAttribute("errorMsg", "哎呀,被外星人抓走了!");
return "error/error";
}
@RequestMapping(value = "/error/500.action")
@ResponseStatus( HttpStatus.OK )
public String error(HttpServletRequest req, HttpServletRequest response) {
req.setAttribute("errorMsg", "受伤啦啦啦!");
return "error/error";
}
}
json统一异常处理
1、参考:http://blog.didispace.com/springbootexception/
2、在aop中对调用方法进行try catch,出现异常返回
乱码
再谈Spring Boot中的乱码和编码问题:https://www.huangyunkun.com/2016/11/05/spring-boot-encoding-with-utf8/
邮件发送
参考:http://blog.didispace.com/springbootmailsender/
禁用依赖
参考:http://blog.didispace.com/spring-boot-disable-autoconfig/
接口参数校验
Hibernate 的 Validator 做传入参数的校验。
RestFul Api 接口参数校验及前后端交互校验 https://zhuanlan.zhihu.com/p/28399903
事务
@SpringBootApplication //等同于 @Configuration @EnableAutoConfiguration @ComponentScan
@EnableTransactionManagement // 启注解事务管理,等同于xml配置方式的 <tx:annotation-driven />
@MapperScan("com.hfy.db.mapper")
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
jar和dll
maven安装本地jar
maven安装本地jarmvn install:install-file -Dfile=C:/Users/hfy/Desktop/sigar-1.6.5.132.jar -DgroupId=org.hyperic -DartifactId=sigar -Dversion=1.6.5.132 -Dpackaging=jar
Spring Boot引用本地jar包
springboot加载dll
插件
1、spring-boot-devtools
maven工程使用spring-boot-devtools进行热部署,更改代码避免重启web容器
多数据源
springboot + mybatis + 多数据源 http://www.cnblogs.com/java-zhao/p/5413845.html
后台配置
windows
windows平台下,jar包开机自启动好配置,可会有命令行窗口运行在界面上,容易不小心关闭。
1、wrapper可以实现
2、使用AlwaysUp软件
linux
看文章:linux相关知识
参考:
http://blog.didispace.com/spring-boot-run-backend/
Wrapper配置详解及高级应用
access-origin
看本人文章:ajax常见问题
模板引擎
来自:http://www.cnblogs.com/petermsdn/archive/2011/05/06/2039178.html
jsp是大家最熟悉的技术
优点:
1、功能强大,可以写java代码
2、支持jsp标签(jsp tag)
3、支持表达式语言(el)
4、官方标准,用户群广,丰富的第三方jsp标签库
5、性能良好。jsp编译成class文件执行,有很好的性能表现
缺点:
jsp没有明显缺点,非要挑点骨头那就是,由于可以编写java代码,如使用不当容易破坏mvc结构。
freemarker
优点:
1、不能编写java代码,可以实现严格的mvc分离
2、性能非常不错
3、对jsp标签支持良好
4、内置大量常用功能,使用非常方便
5、宏定义(类似jsp标签)非常方便
6、使用表达式语言
缺点:
1、不是官方标准
2、用户群体和第三方标签库没有jsp多
session过期,跳出iframe
使用的AdminLTE,左边菜单栏不刷新,只刷新内容区域。
session过期处理,跳转登录,结果登录总在content区域显示,按网上的处理方式:在登录页面<head></head>
中添加如下代码:
<script type="text/javascript">
if (window != top)
top.location.href = location.href;
</script>
然而并没有什么用。最后啦,按以下方式处理:
var $mainLoader = $('#main-loader');
$mainLoader.load(url,function(){
//session过期跳转到登陆页
$mainLoader.find('form button.loginBtn').length!=0 && (window.location.href = contextPath+'/login');
});
参考
上一篇: 【原创】MySQL模拟Oracle邻接模型树形处理
下一篇: 学习收获:结构体