313-888-6766

idea新建了一个maven工程, 报如下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-cli) on project best-practice: The packaging for this project did not assign a file to the build artifact -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.

原因是代码里面用了1.7的语法, 而maven默认是1.5的语法, 所以编译报错了,在pom.xml加入以下解决.

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

ubuntu 关闭ipv6

/etc/sysctl.conf添加

更改生效
sudo sysctl -p

判断是否成功,如果是1, 禁用成功
cat /proc/sys/net/ipv6/conf/all/disable_ipv6

python深浅复制

“`
import copy
a = [1, 2, 3, 4, [‘a’, ‘b’]] # 原始对象
b = a # 引用
c = copy.copy(a) # 浅复制
d = copy.deepcopy(a) # 深复制
e = list(a) # 未知
a.append(5)
a[4].append(‘c’)
print a
print b
print c
print d
print e
“`

结果:
“`
[1, 2, 3, 4, [‘a’, ‘b’, ‘c’], 5]
[1, 2, 3, 4, [‘a’, ‘b’, ‘c’], 5] # b和a是同一内存空间
[1, 2, 3, 4, [‘a’, ‘b’, ‘c’]] # c是a的浅拷贝,对于嵌套的对象,不执行拷贝
[1, 2, 3, 4, [‘a’, ‘b’]] # d是a的深拷贝,对于嵌套的队形,也执行拷贝,所以,a的修改对d没有任何影响
[1, 2, 3, 4, [‘a’, ‘b’, ‘c’]] # e = list(a)相当于浅拷贝

“`

Spring框架的模块组成

如果作为一个整体,这些模块为你提供了开发企业应用所需的一切。但你不必将应用完全基于Spring框架。你可以自由地挑选适合你的应用的模块而忽略其余的模块。

就像你所看到的,所有的Spring模块都是在核心容器之上构建的。容器定义了Bean是如何创建、配置和管理的——更多的Spring细节。当你配置你的应用时,你会潜在地使用这些类。但是作为一名开发者,你最可能对影响容器所提供的服务的其它模块感兴趣。这些模块将会为你提供用于构建应用服务的框架,例如AOP和持久性。

核心容器

这是Spring框架最基础的部分,它提供了依赖注入(Dependency Injection)特征来实现容器对Bean的管理。这里最基本的概念是BeanFactory,它是任何Spring应用的核心。BeanFactory是工厂模式的一个实现,它使用IoC将应用配置和依赖说明从实际的应用代码中分离出来。

应用上下文(Context)模块

核心模块的BeanFactory使Spring成为一个容器,而上下文模块使它成为一个框架。这个模块扩展了BeanFactory的概念,增加了对国际化(I18N)消息、事件传播以及验证的支持。

另外,这个模块提供了许多企业服务,例如电子邮件、JNDI访问、EJB集成、远程以及时序调度(scheduling)服务。也包括了对模版框架例如Velocity和FreeMarker集成的支持。

Spring的AOP模块

Spring在它的AOP模块中提供了对面向切面编程的丰富支持。这个模块是在Spring应用中实现切面编程的基础。为了确保Spring与其它AOP框架的互用性, Spring的AOP支持基于AOP联盟定义的API。AOP联盟是一个开源项目,它的目标是通过定义一组共同的接口和组件来促进AOP的使用以及不同的AOP实现之间的互用性。通过访问他们的站点/aopalliance. sourceforge.net,你可以找到关于AOP联盟的更多内容。

Spring的AOP模块也将元数据编程引入了Spring。使用Spring的元数据支持,你可以为你的源代码增加注释,指示Spring在何处以及如何应用切面函数。

JDBC抽象和DAO模块

使用JDBC经常导致大量的重复代码,取得连接、创建语句、处理结果集,然后关闭连接。Spring的JDBC和DAO模块抽取了这些重复代码,因此你可以保持你的数据库访问代码干净简洁,并且可以防止因关闭数据库资源失败而引起的问题。

这个模块还在几种数据库服务器给出的错误消息之上建立了一个有意义的异常层。使你不用再试图破译神秘的私有的SQL错误消息!

另外,这个模块还使用了Spring的AOP模块为Spring应用中的对象提供了事务管理服务。

对象/关系映射集成模块

对那些更喜欢使用对象/关系映射工具而不是直接使用JDBC的人,Spring提供了ORM模块。Spring并不试图实现它自己的ORM解决方案,而是为几种流行的ORM框架提供了集成方案,包括Hibernate、JDO和iBATIS SQL映射。Spring的事务管理支持这些ORM框架中的每一个也包括JDBC。

Spring的Web模块

Web上下文模块建立于应用上下文模块之上,提供了一个适合于Web应用的上下文。另外,这个模块还提供了一些面向服务支持。例如:实现文件上传的multipart请求,它也提供了Spring和其它Web框架的集成,比如Struts、WebWork。

Spring的MVC框架

Spring为构建Web应用提供了一个功能全面的MVC框架。虽然Spring可以很容易地与其它MVC框架集成,例如Struts,但Spring的MVC框架使用IoC对控制逻辑和业务对象提供了完全的分离。

它也允许你声明性地将请求参数绑定到你的业务对象中,此外,Spring的MVC框架还可以利用Spring的任何其它服务,例如国际化信息与验证。

 

转自:/www.cnblogs.com/linzheng/archive/2011/01/03/1925050.html

servlet2.5与tomcat8.0的兼容性问题一例

在学习spring的过程中遇到一下问题
异常:

这是servlet与tomcat的兼容性问题,将项目中2.5版本的servlet换成3.1.0即解决问题
maven中是这样的:

换成

4787523420

写java web程序的时候,一般修改了xml文件或者程序代码就必须要重启容器才能更新内容.重启tomcat的话少则5秒,在测试程序的时候极其不方便.
Jrebal是IDEA下的一款插件,可以实现在不重启容器的情况下使代码或者xml即时生效.
这是一款收费插件,这里提供特别版吧.
安装完之后,编辑tomcat设置
On Update action设置为redeploy, On Frame deactivation设置为 update classes and resource 即可
这样的话调试程序就方便多了.

Jrebal特别版下载

3234435546

容器环境为tomcat时,提交含有中文的表单时会乱码.
修改tomcat的server.xml中的区块,增加URIEncoding="utf-8"

原因是tomcat默认处理的编码为ISO-8859-1,经过修改配置之后,处理的编码为utf-8,算是比较完美的解决方案了.
当然你也可以在程序中将表单中的字符从ISO-8859-1转换成utf-8.

3049401254

白名单形式,只匹配特定前缀的url