- 浏览: 27087 次
文章列表
Java中String是一个特殊的包装类数据有两种创建形式:
String s = "abc";
String s = new String("abc");
第一种先在栈中创建一个对String类的对象引用变量s,然后去查找"abc"是否被保存在字符串常量池中,如果没有则在栈中创建三个char型的值'a'、'b'、'c',然后在堆中创建一个String对象object,它的值是刚才在栈中创建的三个char型值组成的数组{'a'、'b'、'c'},接着这个String对象object被存放进字符串常量池,最后 ...
在struts2中,通过结果类型stream来支持文件下载功能.当指定stream结果类型时,需要设置一个inputName作为输入流,这个输入流是被下载文件的入口.
(1)编写实现文件下载的类DownloadAction
public class DownloadAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private String inputPath;
public String getInputPath() {
return inputPat ...
1.先找到xml对应的文件信息
window->preference->Myeclipse Enterprise->Files and Editors->XML->XML catalog->User Specified Entries->add
location的位置为:E:\java\struts-2.3.20\src\xwork-core\src\main\resources\xwork-validator-1.0.3.dtd
Key Type:Public ID
Key: -//OpenSymphony Group//XW ...
要使用struts2的标签库,需要引入以下这个语句:
<%@ taglib uri="/struts-tags" prefix="s"%>
一.控制标签
1.if/elseif/else标签
<body>
<s:set name="age" value="30"></s:set>
<s:if test="#age>60&q ...
struts2中提供了Map类型的request,session,与application,可以从ActionContext对象中获得.
(1)实例ActionContext,通常通过ActionContext对象提供的getContext()方法获取
public static ActionContext getContext(),该方法是静态的,可以直接调用
ActionContext=ActionContext.getContext()
(2)获取Map类型的request
Map request=ActionContext.getContext().get("req ...
struts2小知识
- 博客分类:
- struts2
struts2项目
1.构建一个struts2的项目
2.引入struts2所需要的包
3.配置web.xml文件
<!-- 配置struts2拦截器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
&l ...
在spring中经常用TransactionProxyFactoryBean完成声明式事务管理
使用TransactionProxyFactoryBean 需要注入它所依赖的事务管理器,设置代理的目标对象,代理对象的生成方式和事务属性.代理对象时再目标对象上生成的包含事务和AOP切面的新对象,它可以赋给目标的引用来替代目标对象,以支持事务或AOP提供的切面功能
利用TransactionPrxyFactory来实现spring声明式事务管理
首先,在配置文件中定义数据源和事务管理器.
<!-- 配置数据源 -->
<bean id="dataSourc ...
关于aspectj的基本知识点:
在使用@AspectJ 之前,首先必须使用JDK5.0以上的版本。
Spring支持九中@AspectJ切点表达式函数,他们使用不同的方式描述了目标类的连接点,根据描述对象的不同,可以大致分为四类,分别是:
1:方法切点函数,通过描述目标类方法信息定义连接点。execution(),@annotation()
原始的没有配置文件的jdbc连接方式:
public class Test1 {
@Test
public void handle() throws SQLException{
DriverManagerDataSource dataSource=new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql:/ ...
一.增加:
@Test
public void handle5() throws SQLException{
final String sql="insert into mw_person(name,age)values(?,?)";//常量的效率要远远高于变量
jdbcTemplate.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection con)
t ...
使用@AfterThrowing Annotation 可以标注一个AfterThrowing增强,处理程序中未处理的异常
在使用@AfterThrowing Annotation时,可以指定以下两个属性
(1)pointcut:指定切入点对应的切入表达式
(2)throwing:功能是一个返回值形参名,增强处理定义的方法可以通过该形参名来访问目标方法中抛出的异常对象
public interface IUserDao {
public void save();
public void update();
public void delete();
}
@Repo ...
Around增强处理
- 博客分类:
- spring
Around增强处理是一种功能比较强大的增强处理,近似于Before和AfterReturning增强处理的总和.Aound增强处理既可以在执行目标方法之前织入增强工作,也可以在执行目标之后织入增强工作
当定义一个Around增强处理方法时,该方法的第一个参数必须是ProceedingjoinPoint类型(至少包含一个形参,在增强的方法体内,调用ProceedingjoinPoint的proceed()方法才会执行目标方法,如果程序没有调用这个方法,则目标方法不会被执行
public interface IUserDao {
public void save();
public ...
Spring AOP是在基于jdk代理形式和cglib形式的融合
public interface IUserDao {
public void save();
public void update();
public void delete();
}
public class Advice implements MethodBeforeAdvice{
@Override
public void before(Method method, Object[] args, Object object)
throws Throwable {
...
AOP:aspect Object programming(面向切面编程)
连接点:是在程序执行过程中某个特定的点,比如某个方法调用的时候或者处理异常的时候
通知(Advice):在切面某个特定的连接点上执行的动作
切入点:通知一个与切入点表达式关联,并在满足这个切入点的连接点上运行
Aop代理:可以是jdk动态代理或cglib代理
JDK动态代理:在jdk1.3以后在其java.lang.reflect里面提供了一个InvocationHandler 和一个Proxy类, 它是基于接口编程的,必须要有一个接口.编写Handler类,继承InvocationHandler接口代码如 ...
Bean后处理器是一种特殊的Bean,这种特殊的Bean并不对外提供服务,无需id属性,可以负责对容器中的其他Bean执行后处理
Bean后处理必须实现BeanPostProcessor接口,该接口包含以下两个方法
Object postProcessorBeforeInitialization(Object bean,String beanName) throws BeansException
Object postProcessorAfterInitialization(Object bean,String beanName) throws BeansException
publ ...