41.Bootstrap换行。

col-md-10和col-md-2。

这2个div按说应该在一行的,结果col-md-2换行了。

看看样式,发现有多余的“margin-left: 1px;"。

42.Service实现类定义了一个“自动调度进行刷新”的方法。

@Override

 @Scheduled(cron = "0 0/10 * * * ? ")

 // 每10分钟一次

 public void refreshBannerPhoto() {

 bannerPhotoList = photoDao.find(searchBannerForm());

 }

需要在接口类中,也定义一个方法。

void refreshBannerPhoto();


  

 

 @Scheduled method 'refreshBannerPhoto' found on bean target class 'PhotoServiceImpl', 


 but not found in any interface(s) for bean JDK proxy. Either pull the method up to an interface 


 or switch to subclass (CGLIB) proxies by setting proxy-target-class/proxyTargetClass attribute to 'true'

43.Nginx和Tomcat配置疑惑。

需求:一个Tomcat下,部署2个项目。

2个项目使用不同的域名访问。

并且处于实际考虑,A项目必须部署在root下,从而解决图片等路径问题。

在Java中,项目名称是个很烦人的东西。

A项目

server {


  37         listen 80;


  38         server_name fansunion.cn www.fansunion.cn blog.fansunion.cn;


  39       


  51        location / {


  52            proxy_pass   
 http://localhost:8080;


  53        }

B项目

server{


  76        listen 80;


  77        server_name soft.fansunion.cn;


  78        location / {


  79            proxy_pass 
 http://localhost:8080/soft;


  80       }


  81


  82    }

 

 

 期望:访问  http://soft.cn,访问 http://localhost:8080/soft这个项目。

 

 结果: http://localhost:8080/soft,访问的是 http://localhost:8080/根目录下的项目。

 

 

折衷处理,绕过去,把soft项目部署到另外一个Tomcat的根目录下,这个Tomcat监听9080等不同的端口。

问题:多一个Tomcat,多使用了100多M内存额。

 

 

44.使用JSONP解决跨域问题。

后端Java代码备份:

// 对外提供的服务接口,演示用jsonp解决跨域问题

 // TODO jsoncallback是可选的,categoryid->categoryId

 @RequestMapping(value = "recentpost")

 public void recentPost(Integer categoryid, String jsoncallback,

 Integer count, Model model, HttpServletResponse response) {

 if (categoryid == null) {

 categoryid = DEFAULT_CATEGORY;

 }

 List<Post> list = postService.listRecent(categoryid, count);

 String str = JSONObject.toJSONString(list);

 str = jsoncallback + "(" + str + ")";

 super.returnMessage(response, str);

 }

45.类型转换空指针异常。

Integer ispage;

 if (ispage == 1){

 
 }

ispage是null。

这说明,Integer类型的ispage被转换成int,JDK内部转换时,报错。

46.KindEditor获得html和text内容。

方法一:editor.sync();

$("#content).val();

方法二:

html格式内容,editor.html();

文本格式内容,editor.text();

47.ActiveMq的启动。

启动ActiveMq

cd /activemq/bin

经常出现问题的启动方式: ./bin/activemq start

更好的方式:使用bin目录下的linux-x86-64目录下的activemq启动

./bin/linux-x86-64/activemq start

48.Spring注入属性的值到字段中。

@Value("${loginCookieName}")

 private static final String loginCookieName = "cookieName";

 
 a.properties

 loginCookieName=abc

49.权限漏洞。

<mvc:interceptors>

 <mvc:interceptor>

 <mvc:mapping path="/**/*.html" />

 <mvc:mapping path="/**/*.json" />

 <mvc:exclude-mapping path="/login.html*"/>

 <bean class="com.p2p.backend.interceptors.BackendLoginInterceptor">

 <property name="loginUrl">

 <value>${backendLoginUrl}</value>

 </property>

 </bean>

 </mvc:interceptor>

 <mvc:interceptor>

 <mvc:mapping path="/**" />

 <bean class="com.p2p.base.interceptors.BackendPermissionInterceptor">

 </bean>

 </mvc:interceptor>

 </mvc:interceptors>

重新看了下权限,发现有漏洞,我的火眼金睛不是瞎吹的。

访问post.json,没有登录,没有权限,按说返回false。

但是,post.json2,就绕过去了。

另外一个原因是,SpringMVC的DispatchServlet拦截的是“/*”所有,而不是只拦截/*.html和/*.json。

50.Freemarker的base问题。

http://login.jiutianniao.com/

实际后端响应的是  http://login.jiutianniao.com/login

静态资源的路径是:

${base}/static/

通过Nginx代理之后,${base}是 http://login.jiutianniao.com/login/static

访问报错了。

因为,通过Nginx访问的地址是 http://login.jiutianniao.com/static

这个地址映射到后端 http://login.jiutianniao.com/login/static

解决办法:base变量也做成可配置的。

userDomain= http://p2p.jiutianniao.com:8080

静态资源的路径是:

${userDomain}/static/

String contextPath = request.getContextPath();

     model.put("base", contextPath);

总结:${base}在没有代理的情况下,很好。

有Nginx代理之后,目录访问会不正常。