平常笔记

1.在SpringBoot项目中,classpath有两个目录,template和static。这两个目录有什么区别呢?css


1.template文件夹用于存放的文件,好比a.thml这个文件不能被直接访问,好比localhost/a.html这样是访问不了的。只能让视图解析器返回视图名“a”,而后才能够访问到。html

@RequestMapping({"/a"})
    public String hello(){
        return "a";
    }

这样即可以经过localhost/a来访问到template目录下的a.html页面了。前端

template文件夹通常用于存放网页界面html文件。java

2.static文件夹用于存放boostrap,jquery库文件,css,js文件,静态html文件。static文件夹下的文件能够直接访问,如localhost/a.html能够直接访问static文件夹下的a.html文件。可是视图解析器,返回的视图不能解析到这个目录下。按照前面的那个控制器,若是a.html只放在static目录下,那么localhost/a将是404.jquery

2.网页设计模式spring

模板引擎咱们通常会选择thymeleaf或者jsp,这两种模板引擎均可以制做母版。sql

抽取界面公共部分数据库

咱们能够将一些公共的部分抽取出来,网页的头部,底部,抽取出来作成模板(header.html, footer.html, leftbar.html, rightbar.html),其余文件能够直接引入。bootstrap

将导入库文件的代码放入目模板中后端

网页开发,咱们通常会使用boostrap,jquery等框架,每一个html文件里面都去引入这些库,太过于麻烦。咱们能够将导入库文件的这些代码放入header.html, footer.html, leftbar.html, rightbar.html这些模板界面中。其余界面凡是引入了模板界面的均可以再也不从新引入,直接使用bootstrap,jquery等框架。

3. 表单能够不写提交路径,这样表单默认的提交路径就是当前界面的uri

4. 关于初始化数据库数据

方法有两个。1. springboot项目中,能够在classpath目录下建立一个import.sql文件,这个文件中的sql会自动执行。2. 启动项目时调用dao层进行插入数据。

5.关于ngix
ngix是一款很是优秀的反向代理服务器。配置ngix的技巧:全部的server只监听80端口,根据访问时使用的域名不一样,代理到不一样的服务器(ip+端口),将不一样域名对应到不一样的ip和端口。还能够用于负载均衡。
配置案例:

server {
listen 80;
server_name http://www.shun.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}

server {
listen 80;
server_name  http://api.shun.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://127.0.0.1:9001;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}

upstream tomcat-travel{
       server 192.168.177.129:8080;
       server 192.168.177.129:8081;
       server 192.168.177.129:8082;
}
server {
listen 80;
server_name  http://www.hehe.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://tomcat-travel;;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}

6.软件开发方式:
1.先定义好api文档,先后端人员根据api文档开发,而后整合,先后端项目一块儿运行,便可。
2.前端已经写好了,后台根据前台调用关系开发。
3.后台已经开发好了,前台根据后台api开发。

7.写代码
代码里面能够不写注释。可是方法,类上面必定要写javadoc注释,说明这个方法或者类的做用,功能。

8.关于默认值
1.springmvc中@RequstParam注解,给参数设置默认值@RequstParam(value="...", defaultValue="...")。用defaultVale时,就算是int类型,值也要写成字符串,如:@RequstParam(value="num", defaultValue="3") Integer num。
2.可是有的数据不方便设置默认值,然而客户端可能不传该参数,能够设置required属性@RequstParam(value="...", required="false")

9.# {}与${}的区别