1
2
3
4
|
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:
//localhost:3306/sshfw?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=round
jdbc.username=root
jdbc.password=leizm
|
1
2
3
4
5
6
7
8
9
10
11
|
log4j.rootLogger=debug, stdout
log4j.logger.java.sql.Connection=info, stdout
log4j.logger.java.sql.Statement=debug, stdout
log4j.logger.java.sql.PreparedStatement=debug, stdout
log4j.logger.org.hibernate=error
log4j.logger.org.hibernate.SQL=debug
log4j.logger.org.hibernate.tool.hbm2ddl=debug
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm:ss} %c:%L - %m%n
log4j.category.org.springframework = ON
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
beans
xmlns
=
"http://www.springframework.org/schema/beans"
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx
=
"http://www.springframework.org/schema/tx"
xmlns:aop
=
"http://www.springframework.org/schema/aop"
xmlns:context
=
"http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"
default-autowire
=
"byName"
>
<
context:property-placeholder
location
=
"classpath*:jdbc.properties"
/>
<
context:component-scan
base-package
=
"com.lavasoft.demo.dao"
/>
<
context:component-scan
base-package
=
"com.lavasoft.demo.service"
/>
<
context:component-scan
base-package
=
"com.lavasoft.demo.web.action"
/>
<!-- 配置系统的数据源 -->
<
bean
id
=
"dataSource"
class
=
"com.alibaba.druid.pool.DruidDataSource"
init-method
=
"init"
destroy-method
=
"close"
>
<
property
name
=
"driverClassName"
value
=
"${jdbc.driver}"
/>
<
property
name
=
"url"
value
=
"${jdbc.url}"
/>
<
property
name
=
"username"
value
=
"${jdbc.username}"
/>
<
property
name
=
"password"
value
=
"${jdbc.password}"
/>
<
property
name
=
"filters"
value
=
"stat"
/>
<
property
name
=
"maxActive"
value
=
"10"
/>
<
property
name
=
"initialSize"
value
=
"1"
/>
<
property
name
=
"maxWait"
value
=
"60000"
/>
<
property
name
=
"minIdle"
value
=
"1"
/>
<
property
name
=
"timeBetweenEvictionRunsMillis"
value
=
"60000"
/>
<
property
name
=
"minEvictableIdleTimeMillis"
value
=
"300000"
/>
<
property
name
=
"validationQuery"
value
=
"SELECT 'x'"
/>
<
property
name
=
"testWhileIdle"
value
=
"true"
/>
<
property
name
=
"testOnBorrow"
value
=
"false"
/>
<
property
name
=
"testOnReturn"
value
=
"false"
/>
<
property
name
=
"poolPreparedStatements"
value
=
"true"
/>
<
property
name
=
"maxPoolPreparedStatementPerConnectionSize"
value
=
"50"
/>
<
property
name
=
"maxOpenPreparedStatements"
value
=
"100"
/>
</
bean
>
<
bean
id
=
"sessionFactory"
class
=
"org.springframework.orm.hibernate4.LocalSessionFactoryBean"
>
<
property
name
=
"dataSource"
ref
=
"dataSource"
/>
<
property
name
=
"hibernateProperties"
>
<
props
>
<
prop
key
=
"hibernate.dialect"
>org.hibernate.dialect.MySQL5InnoDBDialect</
prop
>
<
prop
key
=
"hibernate.current_session_context_class"
>thread</
prop
>
<
prop
key
=
"hibernate.show_sql"
>true</
prop
>
<
prop
key
=
"hibernate.format_sql"
>true</
prop
>
<
prop
key
=
"hibernate.hbm2ddl.auto"
>update</
prop
>
</
props
>
</
property
>
<
property
name
=
"packagesToScan"
value
=
"com.lavasoft.demo.entity"
/>
</
bean
>
<
bean
id
=
"transactionManager"
class
=
"org.springframework.orm.hibernate4.HibernateTransactionManager"
>
<
property
name
=
"sessionFactory"
ref
=
"sessionFactory"
/>
</
bean
>
<
tx:advice
id
=
"txAdvice"
transaction-manager
=
"transactionManager"
>
<
tx:attributes
>
<
tx:method
name
=
"select*"
read-only
=
"true"
/>
<
tx:method
name
=
"get*"
read-only
=
"true"
/>
<
tx:method
name
=
"load*"
read-only
=
"true"
/>
<
tx:method
name
=
"find*"
read-only
=
"true"
/>
<
tx:method
name
=
"query*"
read-only
=
"true"
/>
<
tx:method
name
=
"read*"
read-only
=
"true"
/>
<
tx:method
name
=
"sync*"
/>
<
tx:method
name
=
"*"
propagation
=
"REQUIRED"
rollback-for
=
"Exception"
/>
</
tx:attributes
>
</
tx:advice
>
<
aop:config
>
<
aop:pointcut
id
=
"pointcut"
expression
=
"execution(* com.lavasoft.demo.service.*Impl.*(..))"
/>
<
aop:advisor
advice-ref
=
"txAdvice"
pointcut-ref
=
"pointcut"
/>
</
aop:config
>
</
beans
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<
struts
>
<
constant
name
=
"struts.devMode"
value
=
"true"
/>
<
constant
name
=
"struts.i18n.encoding"
value
=
"UTF-8"
/>
<
constant
name
=
"struts.convention.result.path"
value
=
"/WEB-INF/pages"
/>
<
constant
name
=
"struts.convention.package.locators"
value
=
"web,action"
/>
<
constant
name
=
"struts.objectFactory"
value
=
"spring"
/>
<
constant
name
=
"struts.configuration.xml.reload"
value
=
"true"
/>
<
package
name
=
"demo"
extends
=
"struts-default"
namespace
=
"/demo"
>
<
global-results
>
<
result
name
=
"login"
>/index.jsp</
result
>
<
result
name
=
"error"
>/error.jsp</
result
>
</
global-results
>
</
package
>
</
struts
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
web-app
version
=
"2.5"
xmlns
=
"http://java.sun.com/xml/ns/javaee"
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<
welcome-file-list
>
<
welcome-file
>login.html</
welcome-file
>
</
welcome-file-list
>
<
filter
>
<
filter-name
>encodingFilter</
filter-name
>
<
filter-class
>org.springframework.web.filter.CharacterEncodingFilter</
filter-class
>
<
init-param
>
<
param-name
>encoding</
param-name
>
<
param-value
>UTF-8</
param-value
>
</
init-param
>
</
filter
>
<
filter-mapping
>
<
filter-name
>encodingFilter</
filter-name
>
<
url-pattern
>/*</
url-pattern
>
</
filter-mapping
>
<
filter
>
<
filter-name
>struts2</
filter-name
>
<
filter-class
>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</
filter-class
>
</
filter
>
<
filter-mapping
>
<
filter-name
>struts2</
filter-name
>
<
url-pattern
>/*</
url-pattern
>
</
filter-mapping
>
<
context-param
>
<
param-name
>log4jConfigLocation</
param-name
>
<
param-value
>classpath:log4j.properties</
param-value
>
</
context-param
>
<
listener
>
<
listener-class
>org.springframework.web.util.Log4jConfigListener</
listener-class
>
</
listener
>
<
context-param
>
<
param-name
>contextConfigLocation</
param-name
>
<
param-value
>classpath:spring-config.xml</
param-value
>
</
context-param
>
<
listener
>
<
listener-class
>org.springframework.web.context.ContextLoaderListener</
listener-class
>
</
listener
>
<
listener
>
<
listener-class
>org.springframework.web.context.request.RequestContextListener</
listener-class
>
</
listener
>
<
listener
>
<
listener-class
>org.springframework.web.util.IntrospectorCleanupListener</
listener-class
>
</
listener
>
</
web-app
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
package
com.lavasoft.demo.web.action;
import
com.lavasoft.demo.entity.User;
import
com.lavasoft.demo.service.UserService;
import
com.opensymphony.xwork2.ActionSupport;
import
org.apache.struts2.convention.annotation.Action;
import
org.apache.struts2.convention.annotation.Namespace;
import
org.apache.struts2.convention.annotation.Result;
import
org.springframework.context.annotation.Scope;
import
org.springframework.stereotype.Component;
import
javax.annotation.Resource;
import
java.util.List;
/**
* Created by Administrator on 14-4-23.
*
* @author leizhimin 14-4-23 下午3:09
*/
@Namespace
(
"/demo"
)
@Component
@Scope
(
"prototype"
)
public
class
UserAction
extends
ActionSupport {
@Resource
private
UserService userService;
private
User user;
private
List<User> userList;
@Action
(value =
"regUser"
, results = {
@Result
(name =
"success"
, location =
"/WEB-INF/pages/login.jsp"
),
@Result
(name =
"input"
, location =
"/WEB-INF/pages/error.jsp"
)})
public
String reg() {
System.out.println(
"----reg page----"
);
return
SUCCESS;
}
@Action
(value =
"saveUser"
, results = {
@Result
(name =
"success"
, location =
"/WEB-INF/pages/list.jsp"
),
@Result
(name =
"input"
, location =
"/WEB-INF/pages/error.jsp"
)})
public
String save() {
System.out.println(
"----save----"
);
System.out.println(user);
userService.saveUser(user);
return
SUCCESS;
}
public
String list() {
System.out.println(
"----list----"
);
System.out.println(user);
userList = userService.queryUserAll();
return
SUCCESS;
}
public
List<User> getUserList() {
return
userList;
}
public
void
setUserList(List<User> userList) {
this
.userList = userList;
}
public
UserService getUserService() {
return
userService;
}
public
void
setUserService(UserService userService) {
this
.userService = userService;
}
public
User getUser() {
return
user;
}
public
void
setUser(User user) {
this
.user = user;
}
}
|
1
2
3
4
5
6
7
8
9
10
11
|
package
com.lavasoft.demo.dao;
import
com.lavasoft.sshfw.core.BaseDaoImpl;
import
org.springframework.stereotype.Repository;
/**
* Created by Administrator on 14-4-23.
*
* @author leizhimin 14-4-23 下午6:43
*/
@Repository
public
class
UserDAO
extends
BaseDaoImpl {
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
package
com.lavasoft.demo.entity;
import
javax.persistence.*;
import
static
javax.persistence.GenerationType.IDENTITY;
@Entity
@Table
(name =
"t_demo"
)
public
class
User
implements
java.io.Serializable {
@Id
@GeneratedValue
(strategy = IDENTITY)
@Column
(name =
"id"
|