目录
db.properties (记得改所用数据库名cc_student处)
application_db.xml(Ctrl+F修改com.tyxc到自己的包)
springmvc.xml(同上Ctrl+F修改com.tyxc到自己的包)
一、spring的IOC容器和DI(依赖注入)
1.IOC容器:
就是具有依赖注入功能的容器,是一个可以创建对象的容器。
不仅仅有容器的临时存储功能,还可以创建对象,例如:Manager m=new Manager();
IOC主要负责实例化,定位。
配置应用程序的对象及建立这些对象之间的依赖关系:MVC
控制反转是指new实例工作不由程序员来担任,主要由spring来接管
2. DI 依赖注入
在容器创建对象后,处理对象的依赖关系,
依赖注入在spring中一共有四种方式:
(1)set注入方式(常用)
(2)静态工厂注入方式(不常用)
(3)构造方法的构造方式(常用)
(4)基于注解的注入方式(常用)
二、springMVC正式搭建项目(开发环境)
1.新建项目
file-》new-》dynamic web project-》起名-》next-》next-》勾选核心配置-》finish
创建成功!
关于eclipse和idea的选择:
自己完成的项目用eclipse,有后续的大项目需要团队的IDEA。
2.配置文件的创建:
根目录文件夹创建:new->source folder(相当于src同等优先级,)-》名字叫config(不能叫别的,否则不能被config自动加载)
一般config只有项目经理可以修改。
src存放的是项目的源代码。
config内部结构:
log4j.properties --- 输出日志的格式定义(可以在百度上查,遵循API)
db.properties --- jdbc的连接。因为java编译后.class变成只读,而放在.properties仍然可以修改,增强维护性
mybatis和spring是package
log4j.properties
#ERROR WARN INFO DEBUG
log4j.rootLogger=DEBUG,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.ConversionPattern=%5p [%t] -%m%n
db.properties (记得改所用数据库名cc_student处)
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/cc_student?characterEncoding=utf-8
jdbc.username=root
jdbc.password=3306
jdbc.maxActive=100
jdbc.maxIdle=100
jdbc.maxWait=10000
jdbc.removeAbandoned=true
jdbc.removeAbandonedTimeout=60
jdbc.logAbandoned=true
jdbc.validationQuery=select 1 from dual
jdbc.testOnBorrow=true
SqlMapConfig.xml (记得改包名demo处)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases >
<package name="com.demo.model"/>
</typeAliases>
</configuration>
application_db.xml(Ctrl+F修改com.tyxc到自己的包)
<?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:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
">
<context:component-scan base-package="com.tyxc"></context:component-scan>
<!-- 配置数据源 -->
<context:property-placeholder location="classpath:db.properties" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="maxActive" value="${jdbc.maxActive}" />
<property name="maxIdle" value="${jdbc.maxIdle}" />
<property name="maxWait" value="${jdbc.maxWait}" />
<property name="removeAbandoned" value="${jdbc.removeAbandoned}" />
<property name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}" />
<property name="logAbandoned" value="${jdbc.logAbandoned}" />
<property name="validationQuery" value="${jdbc.validationQuery}" />
<property name="testOnBorrow" value="${jdbc.testOnBorrow}" />
</bean>
<!-- SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"></property>
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.tyxc.mapper"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="find*" propagation="NOT_SUPPORTED"
read-only="true" />
<tx:method name="select*" propagation="NOT_SUPPORTED"
read-only="true" />
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="execution(* com.tyxc.mapper.*.*(..))"
id="transactionPointcut" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="transactionPointcut" />
</aop:config>
</beans>
springmvc.xml(同上Ctrl+F修改com.tyxc到自己的包)
<?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:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
">
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 配置service扫描 -->
<context:component-scan base-package="com.tyxc"></context:component-scan>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置逻辑视图的前缀 -->
<property name="prefix" value="/WEB-INF/pages/"></property>
<!-- 配置逻辑视图的后缀 -->
<property name="suffix" value=".jsp"></property>
<property name="cache" value="false"></property>
</bean>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="125242880"></property>
</bean>
</beans>
域名命名方式:(倒过来)
例如:www.baidu.com
需要写成:com.baidu.xxxx
原因:需要部署到以太网上被访问,为防止域名的冲突
3.src结构创建
model实体
util自定义的一些工具
4.加载项目的lib
两种方式,
一种用maven(之前文章里有),但是在一些加密环境无法使用,
所以第二种方式是用传统的方式,直接复制过来手动build
下载地址:lib.zip免费下载-其它文档类资源-CSDN下载
此处粘贴进来,然后右键build path->configure build path->add jars->选中刚刚的所有包(选中第一个,往下拉到最后一个,按住shift,点最后一个)-》ok->apply-》ok
5.web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>cc_javaMax_demo</display-name>
<!--配置SpringMVC前端控制器 -->
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- SpringMVC的配置文件的默认路径是/WEB-INF/${servlet-name}-servlet.xml -->
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- <param-value>classpath:springmvc.xml</param-value> -->
<param-value>classpath:spring/springmvc.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<!--设置所有以action结冕的清求进入SpringMVC -->
<url-pattern>*.action</url-pattern>
</servlet-mapping>
<context-param>
<!-- 读取故据库配置文件 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/application_*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.action</welcome-file>
</welcome-file-list>
</web-app>
直接复制粘贴过去就行
截止到此处都是运行环境的搭建,实在不行可以找项目经理,千万别没搭建好就开始开发。
遇到javax.naming.NameNotFoundException错误可以在web.xml文件中加上:
<!-- 网上查找的针对javax.naming.NameNotFoundException -->
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>dev</param-value>
</context-param>
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>dev</param-value>
</context-param>
<context-param>
<param-name>spring.liveBeansView.mbeanDomain</param-name>
<param-value>dev</param-value>
</context-param>
6.运行检验
右键Tomcat-》add and remove -》选中我们的项目-》add -》finish
选择debug模式而不是运行模式
运行成功: