jeecms笔记阅读源码Word格式.docx
- 文档编号:17197542
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:34
- 大小:38.61KB
jeecms笔记阅读源码Word格式.docx
《jeecms笔记阅读源码Word格式.docx》由会员分享,可在线阅读,更多相关《jeecms笔记阅读源码Word格式.docx(34页珍藏版)》请在冰豆网上搜索。
document.getElementById('
license_form'
).submit();
}
/script>
formid="
license_form"
action="
install_params.jsp"
method="
post"
inputtype="
button"
class="
btn"
onclick="
formSubmit();
"
value="
下一步>
进入安装数据库和参数页:
formaction="
install_setup.jsp"
onsubmit="
returnformSubmit();
tr>
<
tdheight="
30"
align="
right"
域名:
/td>
tdalign="
left"
inputname="
domain"
type="
text"
input"
%=request.getServerName()%>
<
系统已经检测出您的域名,请勿改动<
/tr>
部署路径:
cxtPath"
%=request.getContextPath()%>
系统已经检测出您的部署路径,请勿改动<
安装:
%@pagecontentType="
text/html;
charset=gbk"
language="
java"
import="
com.jeecms.core.util.*,java.util.*"
%>
%
StringdbFileName="
/install/db/jeecms-db-2.4.2-final.sql"
;
StringinitFileName="
/install/db/jeecms-init-2.4.2-final.sql"
//创建数据库
if("
true"
.equals(isCreateDb)){
Install.createDb(dbHost,dbPort,dbName,dbUser,dbPassword);
}else{
Install.changeDbCharset(dbHost,dbPort,dbName,dbUser,dbPassword);
//创建表
.equals(isCreateTable)){
StringsqlPath=application.getRealPath(dbFileName);
List<
String>
sqlList=Install.readSql(sqlPath);
Install.createTable(dbHost,dbPort,dbName,dbUser,dbPassword,
sqlList);
//初始化数据
.equals(isInitData)){
StringinitPath=application.getRealPath(initFileName);
initList=Install.readSql(initPath);
initList);
//更新配置
Install.updateConfig(dbHost,dbPort,dbName,dbUser,dbPassword,
domain,cxtPath,port);
//处理数据库配置文件
StringdbXmlPath=application.getRealPath(dbXmlFileName);
Install
.dbXml(dbXmlPath,dbHost,dbPort,dbName,dbUser,
dbPassword);
//处理web.xml
StringwebXmlFromPath=application.getRealPath(webXmlFrom);
StringwebXmlToPath=application.getRealPath(webXmlTo);
Install.webXml(webXmlFromPath,webXmlToPath);
//在Util里面
/**
*安装类
*
*@authorliufang
*/
publicclassInstall{
publicstaticvoiddbXml(StringfileName,StringdbHost,StringdbPort,
StringdbName,StringdbUser,StringdbPassword)throwsException{
Strings=FileUtils.readFileToString(newFile(fileName));
s=s.replaceFirst("
DB_HOST"
dbHost);
DB_PORT"
dbPort);
DB_NAME"
dbName);
DB_USER"
dbUser);
DB_PASSWORD"
dbPassword);
FileUtils.writeStringToFile(newFile(fileName),s);
publicstaticConnectiongetConn(StringdbHost,StringdbPort,
Class.forName("
com.mysql.jdbc.Driver"
).newInstance();
StringconnStr="
jdbc:
mysql:
//"
+dbHost+"
:
+dbPort+"
/"
+dbName
+"
?
user="
+dbUser+"
&
password="
+dbPassword
characterEncoding=GBK"
Connectionconn=DriverManager.getConnection(connStr);
returnconn;
publicstaticvoidwebXml(StringfromFile,StringtoFile)throwsException{
FileUtils.copyFile(newFile(fromFile),newFile(toFile));
/**
*创建数据库
*@paramdbHost
*@paramdbName
*@paramdbPort
*@paramdbUser
*@paramdbPassword
*@throwsException
publicstaticvoidcreateDb(StringdbHost,StringdbPort,StringdbName,
StringdbUser,StringdbPassword)throwsException{
+dbUser+"
+dbPassword+"
Statementstat=conn.createStatement();
Stringsql="
dropdatabaseifexists"
+dbName;
stat.execute(sql);
sql="
createdatabase"
CHARACTERSETGBK"
stat.close();
conn.close();
publicstaticvoidchangeDbCharset(StringdbHost,StringdbPort,
Connectionconn=getConn(dbHost,dbPort,dbName,dbUser,dbPassword);
ALTERDATABASE"
*创建表
*@paramsqlList
publicstaticvoidcreateTable(StringdbHost,StringdbPort,StringdbName,
StringdbUser,StringdbPassword,List<
sqlList)
throwsException{
for(Stringdllsql:
sqlList){
stat.addBatch(dllsql);
}
stat.executeBatch();
*更新配置
*@paramdomain
*@paramcxtPath
*@paramport
publicstaticvoidupdateConfig(StringdbHost,StringdbPort,
StringdbName,StringdbUser,StringdbPassword,Stringdomain,
StringcxtPath,Stringport)throwsException{
updateCORE_WEBSITEsetDOMAIN='
+domain+"
'
stat.executeUpdate(sql);
updateCORE_GLOBALsetCONTEXT_PATH='
+cxtPath+"
PORT="
+port;
*读取sql语句。
“/*”开头为注释,“;
”为sql结束。
*@paramfileName
*sql文件地址
*@returnlistofsql
publicstaticList<
readSql(StringfileName)throwsException{
BufferedReaderbr=newBufferedReader(newInputStreamReader(
newFileInputStream(fileName),Constants.ENCODING));
sqlList=newArrayList<
();
StringBuildersqlSb=newStringBuilder();
Strings=null;
while((s=br.readLine())!
=null){
if(s.startsWith("
/*"
)){
continue;
}
if(s.endsWith("
sqlSb.append(s);
sqlSb.setLength(sqlSb.length()-1);
sqlList.add(sqlSb.toString());
sqlSb.setLength(0);
}else{
br.close();
returnsqlList;
jcaptcha自定义验证码
(略)
Xml
!
--Spring刷新Introspector防止内存泄露-->
listener>
<
listener-class>
org.springframework.web.util.IntrospectorCleanupListener<
/listener-class>
/listener>
--session超时定义,单位为分钟-->
session-config>
session-timeout>
20<
/session-timeout>
/session-config>
error-page>
error-code>
404<
/error-code>
location>
/404.html<
/location>
/error-page>
403<
/403.html<
welcome-file-list>
welcome-file>
index.jspa<
/welcome-file>
index.do<
index.html<
/welcome-file-list>
目录:
之一
总共40张表在Spring里面可以用这种方式:
propertyname="
mappingLocations"
list>
<
value>
classpath:
/com/jeecms/core/entity/*.hbm.xml<
/value>
/com/jeecms/cms/entity/*.hbm.xml<
/com/jeecms/article/entity/*.hbm.xml<
/com/jeecms/download/entity/*.hbm.xml<
/com/jeecms/auxiliary/entity/*.hbm.xml<
/list>
/property>
同样Hibernate也可以这样:
hibernateProperties"
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
hibernate.show_sql=true
hibernate.format_sql=false
hibernate.query.substitutions=true1,false0
hibernate.jdbc.batch_size=20
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
hibernate.cache.provider_configuration_file_resource_path=/ehcache-hibernate.xml
Spring事务
--事务配置-->
beanid="
txManager"
org.springframework.orm.hibernate3.HibernateTransactionManager"
sessionFactory"
ref="
/>
/bean>
--使用annotation自动注册bean,并检查@Required,@Autowired的属性已被注入-->
context:
component-scanbase-package="
com.jeecms"
--使用annotation定义事务-->
tx:
annotation-driventransaction-manager="
Spring注解@Component、@Repository、@Service、@Controller区别
Spring2.5中除了提供@Component注释外,还定义了几个拥有特殊语义的注释,它们分别是:
@Repository、@Service和@Controller。
在目前的Spring版本中,这3个注释和@Component是等效的,但是从注释类的命名上,很容易看出这3个注释分别和持久层、业务层和控制层(Web层)相对应。
虽然目前这3个注释和@Component相比没有什么新意,但Spring将在以后的版本中为它们添加特殊的功能。
所以,如果Web应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用@Repository、@Service和@Controller对分层中的类进行注释,而用@Component对那些比较中立的类进行注释。
@Service用于标注业务层组件,@Controller用于标注控制层组件(如struts中的action),@Repository用于标注数据访问组件,即DAO组件,而@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
Spring事务处理
@Repository
publicabstractclassBaseDaoImpl<
TextendsSerializable>
implementsBaseDao<
T>
{
protectedLoggerlog=LoggerFactory.getLogger(getClass());
protectedSessionFactorysessionFactory;
@Autowired
publicvoidsetSessionFactory(SessionFactorysessionFactory){
this.sessionFactory=sessionFactory;
protectedSessiongetSession(){
returnsessionFactory.getCurrentSession();
publicTsave(Tentity){
Assert.notNull(entity);
getSession().save(entity);
returnentity;
publicObjectupdate(Objectent
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jeecms 笔记 阅读 源码