#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/ssm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB
输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH:mm:ss}][%c]%m%n
spring-dao.xml
<?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:p=“http://www.springframework.org/schema/p”
xmlns:context=“http://www.springframework.org/schema/context”
xmlns:mvc=“http://www.springframework.org/schema/mvc”
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
spring-db.xml
<?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:p=“http://www.springframework.org/schema/p”
xmlns:context=“http://www.springframework.org/schema/context”
xmlns:mvc=“http://www.springframework.org/schema/mvc”
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
spring-tx.xml
<?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:p=“http://www.springframework.org/schema/p”
xmlns:context=“http://www.springframework.org/schema/context”
xmlns:aop=“http://www.springframework.org/schema/aop”
xmlns:tx=“http://www.springframework.org/schema/tx”
xmlns:mvc=“http://www.springframework.org/schema/mvc”
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
<bean id=“transactionManager”
class=“org.springframework.jdbc.datasource.DataSourceTransactionManager”>
aop:config
<aop:pointcut id=“allServiceMethod” expression=“execution(* com.chillax.service..(…))”/>
<aop:advisor pointcut-ref=“allServiceMethod” advice-ref=“TxAdvice” />
</aop:config>
<tx:advice id=“TxAdvice” transaction-manager=“transactionManager”>
tx:attributes
<tx:method name=“*” propagation=“REQUIRED” rollback-for=“java.lang.Exception”/>
</tx:attributes>
</tx:advice>
3、在WEB-INF文件夹下添加/修改以下配置文件
spring-mvc.xml
<?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:p=“http://www.springframework.org/schema/p”
xmlns:context=“http://www.springframework.org/schema/context”
xmlns:mvc=“http://www.springframework.org/schema/mvc”
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<mvc:annotation-driven />
mvc:default-servlet-handler/
<context:component-scan base-package=“com.chillax.controller” />
web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xmlns=“http://java.sun.com/xml/ns/javaee”
xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd”
version=“3.0”>
Archetype Created Web Application
/index.jsp
contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
true
encoding
UTF-8
encodingFilter
/*
SpringMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
/WEB-INF/spring-mvc.xml
1
true
SpringMVC
/
4、在src/main/java下添加如下包和类
UserController.java
package com.chillax.controller;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.chillax.dto.User;
import com.chillax.service.IUserService;
@Controller
@RequestMapping(“/user”)
public class UserController {
@Resource
private IUserService userService;
@RequestMapping(“/userList”)
public String userList(HttpServletRequest request,Model model){
List uList = userService.getAllUser();
model.addAttribute(“uList”, uList);
return “userList”;
}
@RequestMapping(“/showUser”)
public String showUser(HttpServletRequest request,Model model){
int userId = Integer.parseInt(request.getParameter(“id”));
User user = userService.getUserById(userId);
model.addAttribute(“user”, user);
return “showUser”;
}
@RequestMapping(“/addUserUI”)
public String addUserUI(){
return “addUser”;
}
@RequestMapping(“/addUser”)
public String addUser(HttpServletRequest request,Model model){
User user = new User();
user.setName(String.valueOf(request.getParameter(“name”)));
user.setPassword(String.valueOf(request.getParameter(“password”)));
user.setAge(Integer.parseInt(String.valueOf(request.getParameter(“age”))));
userService.addUser(user);
return “redirect:/user/userList”;
}
}
IUserDao.java
package com.chillax.dao;
import java.util.List;
import java.util.Map;
import com.chillax.dto.User;
public interface IUserDao {
public User queryByPrimaryKey(Integer id);
public List getAllUser();
public void insertUser(User user);
public void insertUserByBatch(List list);
public void deleteByPrimaryKey(Integer id);
public void delteUserByBatch(Map<String,Object> params);
public void updateByPrimaryKey(User user);
}
User.java
package com.chillax.dto;
public class User {
private Integer id;
private String name;
private String password;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password == null ? null : password.trim();
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>id, name, password, age
<select id=“queryByPrimaryKey” resultMap=“BaseResultMap”
parameterType=“java.lang.Integer”>
select
from user
where id = #{id,jdbcType=INTEGER}
select
from user
insert into user
id,
name,
password,
age,
#{id,jdbcType=INTEGER},
#{name,jdbcType=VARCHAR},
#{password,jdbcType=VARCHAR},
#{age,jdbcType=INTEGER},
insert into USER
(ID,
NAME,
PASSWORD,
AGE)
select A.* from
(
select
#{user.id,jdbcType=INTEGER},
#{user.name,jdbcType=VARCHAR},
#{user.password,jdbcType=VARCHAR},
#{user.age,jdbcType=INTEGER}
from dual
) A
delete from user
where id = #{id,jdbcType=INTEGER}
delete from user
where id IN
#{ids,jdbcType=DECIMAL}
update user
name = #{name,jdbcType=VARCHAR},
password = #{password,jdbcType=VARCHAR},
age = #{age,jdbcType=INTEGER},
where id = #{id,jdbcType=INTEGER}
IUserService.java
package com.chillax.service;
import java.util.List;
import com.chillax.dto.User;
public interface IUserService {
public User getUserById(int userId);
public void insertUser(User user);
public void addUser(User user);
public List getAllUser();
}
UserServiceImpl.java
package com.chillax.service.Impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.chillax.dao.IUserDao;
import com.chillax.dto.User;
import com.chillax.service.IUserService;
@Service(“userService”)
public class UserServiceImpl implements IUserService {
@Resource
private IUserDao userDao;
public User getUserById(int userId) {
return userDao.queryByPrimaryKey(userId);
}
public void insertUser(User user) {
userDao.insertUser(user);
}
public void addUser(User user) {
userDao.insertUser(user);
}
@Override
public List getAllUser() {
return userDao.getAllUser();
}
}
5、在WEB-INF文件夹下创建jsp文件夹,并添加userList.jsp,showUser.jsp、addUser.jsp
userList.jsp
<%@ page language=“java” import=“java.util.*” pageEncoding=“utf-8”%>
<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+“😕/”+request.getServerName()+“:”+request.getServerPort()+path+“/”;
%>
<c:forEach items=“${uList }” var=“u”>
用户名称:${u.name}
用户年龄:${u.age }
</c:forEach>
addUser.jsp
<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+“😕/”+request.getServerName()+“:”+request.getServerPort()+path+“/”;
%>
userName:
password:
age:
showUser.jsp
<%@ page language=“java” import=“java.util.*” pageEncoding=“utf-8”%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+“😕/”+request.getServerName()+“:”+request.getServerPort()+path+“/”;
%>
${user.name }
6、创建数据库,并创建表
create database maventest;
use maventest;
CREATE TABLE user
(
id
int(12) NOT NULL AUTO_INCREMENT,
name
varchar(50) NOT NULL,
password
varchar(50) NOT NULL,
age
int(9) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
insert into user
(id
,name
,password
,age
) values (1,‘admin’,‘admin’,22);
7、整个项目文件结构图
8、部署发布项目,进行测试
至此,框架搭建完成。
5.常见问题
======
问题1:pom.xml文件里的代码到哪里找?
解答:http://www.mvnrepository.com/
问题2:新建MAVEN项目过程中,出现下图错误?
**解决:**在MyEclipse的安装目录找到myeclipse.ini,将分配的堆内存加大
问题3:新建完工程后出现以下错误?
**解答:**在pom.xml添加以下代码即可,添加完代码就会自动下载好jar包
问题4:修改pom.xml时出现以下错误?
**解答:**这是由于jar包没有正确下载导致的,找到错误的jar包位置,将文件夹里的文件删掉,将pom.xml里该jar包的配置代码删除后再重新写上,让MAVEN重新下载jar包即可。
问题5:出现以下错误?
解答:
问题6:出现以下错误?
**解答:**将项目的jre版本换成1.7或者以上的版本即可
问题7:出现以下错误,并且已经确定jre是1.7版本或者以上版本。
**解答:**在pom.xml文件的的标签中加入以下代码,然后Update Project(参照问题5)
Maven_Project
org.apache.maven.plugins
maven-compiler-plugin
2.3.2
1.71.7
问题8:访问报错
**解答:**请确认地址中的项目,跟项目中的Web Context-root地址一致。
问题9:直接导入代码报错
**解答:**如果想直接导入代码需要先做文章开头的1和2两步,即用一个自己的新的仓库来存储jar包,不然容易跟已有的仓库配置冲突,导致jar包无法下载或下载不全。下图是我导入的过程,下载jar的过程比较慢,并且下载完了还报错,但是报错并不影响项目的正确运行。
推荐阅读
====
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
总结
这个月马上就又要过去了,还在找工作的小伙伴要做好准备了,小编整理了大厂java程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
ps://img-blog.csdn.net/20180119222422395?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdjEyMzQxMTczOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
问题9:直接导入代码报错
**解答:**如果想直接导入代码需要先做文章开头的1和2两步,即用一个自己的新的仓库来存储jar包,不然容易跟已有的仓库配置冲突,导致jar包无法下载或下载不全。下图是我导入的过程,下载jar的过程比较慢,并且下载完了还报错,但是报错并不影响项目的正确运行。
推荐阅读
====
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-6f07Xzkv-1713341706885)]
[外链图片转存中…(img-xqTLj3De-1713341706885)]
[外链图片转存中…(img-cvmCn4oo-1713341706886)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
总结
这个月马上就又要过去了,还在找工作的小伙伴要做好准备了,小编整理了大厂java程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家
[外链图片转存中…(img-34Huao8V-1713341706886)]
[外链图片转存中…(img-F1IKH8MT-1713341706886)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!