SSM标准配置(附配置文件)
2021-07-03 21:23:55 22 举报
AI智能生成
登录查看完整内容
SSM标准配置
作者其他创作
大纲/内容
SSM配置
Ⅴ: MyBatis逆向工程配置 GeneratorConfig.xml
log4j.properties
pom.xml
Ⅰ: web.xml
Servlet
② SpringMVC前端控制器 DispatcherServlet
作用:拦截相应的请求交给 spring mvc 处理。注意:默认 spring mvc 会从 WEB-INF 下去加载 [servlet 的 name]-servlet.xml 这个主配置文件。 如果我们不喜欢把主配置文件放到这个地方,我们可以通过手动来指定 springMVC 主配置文件的位置和名称。
Filter
③ Web字符编码过滤器 CharacterEncodingFilter
作用:配置该过滤器拦截所有的资源并设置好编码格式,用来防止中文乱码问题。注意:该过滤器一定要配置在其他过滤器之前,以最先生效
④ 隐藏过滤器 HiddenHttpMethodFilter
作用: 解决Restful 的 Deleter/Update 请求
Listener
① Spring核心监听器 ContextLoaderListener
在 tomcat 启动的时候,创建 spring 的工厂类对象,把工厂类对象绑定到 tomcat 的上下文中,以前写 java 项目第一步都是创建 spring 的工厂类对象。而在运行 web 项目时还是需要 Spring 的工厂类对象,所以 spring 就为我们提供了这个监听器来在 tomcat 启动的时候来实现这些代码。注意:默认 spring 会从 WEB-INF 目录下加载 applicationContext.xml 作为 spring 的主配置文件,如果我们不喜欢把主配置文件放到这个地方,我们可以通过手动来指定 Spring 主配置文件的位置和名称。
0: 显式制定Spring配置文件 路径/名称
Ⅱ: SpringMVC.xml
① 启用Spring常用注解<context:annotation-config/>
一般来说,像@Resource 、@ PostConstruct、@Autowired这些注解在自动注入还是比较常用,所以如果总是需要按照传统的方式一条一条配置显得有些繁琐和没有必要,于是spring给我们提供< context:annotation-config/>的简化配置方式,自动帮你完成声明。
② 组件扫描 context:component-scan
用于 指定/排除 需要扫描的包/类对于Controller层,通常只识别Controller包中的@Controller注解的类
③ bean
视图解析器 InternalResourceViewResolver
作用:存放在 / WEB-INF / 下面的内容是不能直接通过 request 请求的方式请求到的,为了安全性考虑,我们通常会把 jsp 文件放在 WEB-INF 目录下,而 InternalResourceView 在服务器端跳转的方式可以很好的解决这个问题(见下)。InternalResourceViewResolver 会把返回的视图名称都解析为 InternalResourceView 对象,InternalResourceView 会把 Controller 处理器方法返回的模型属性都存放到对应的 request 属性中,然后通过 RequestDispatcher 在服务器端把请求 forword 重定向到目标 URL。比如在 InternalResourceViewResolver 中定义了 prefix=/WEB-INF/views/,suffix=.jsp,然后请求的 Controller 处理器方法返回的视图名称为 test,那么这个时候 InternalResourceViewResolver 就会把 test 解析为一个 InternalResourceView 对象,先把返回的模型属性都存放到对应的 HttpServletRequest 属性中,然后利用 RequestDispatcher 在服务器端把请求 forword 到 / WEB-INF/views/test.jsp。
④ 标准配置: 注解驱动<mvc:annotation-driven/> , 服务器默认处理器<mvc:default-servlet-handler>
Ⅲ: MyBatis.xml
别名
typeAliases> package name=\"com.ryze.bean\"
驼峰命名
settings> setting name=\"mapUnderscoreToCamelCase\" value=\"true\"将下划线映射成驼峰
分页插件
plugs> plug interceptor=\"com.github.pagehelper.PageInterceptor\"
Ⅳ: applicationContext.xml
① 组件扫描
context:component-scan 该配置中只扫描非Controller层
② Spring 相关配置:配置和业务逻辑有关的,主要是数据库方面
2.1 数据库控制
2.1.1 加载数据库配置文件 路径/名称
context:property-placeholder> location=\"classpath:DB/db.properties\"
2.1.2 配置数据源
德鲁伊数据源为例: bean id=\"druidDataSource\" class=\"com.alibaba.druid.pool.DruidDataSource\" > property name=\"driverClassName\" value=\"${jdbc.driver}\"
2.1.3 事物控制
2.1.3.1 事务管理器
bean id=\"transactionManager\" class=\"org.springframework.jdbc.datasource.DataSourceTransactionManager\" <!-- 控制数据源 --> > property name=\"dataSource\" ref=\"druidDataSource\"
2.2.3.2. 注解驱动
<tx:annotation-driven transaction-manager=\"transactionManager\"/> 开启指定事务管理器的注解事务
③ 整合MyBatis
3.1 配置SqlSession
3.1.1 SqlSession(工厂)
bean id=\"sqlSessionFactory\" class=\"org.mybatis.spring.SqlSessionFactoryBean\">property name=\"dataSource\" // 指定数据源>property name=\"configLocation\" // 指定MyBatis配置文件 路径/名称>property name=\"mapperLocations\" // 指定Mapper映射文件 路径/名称
3.1.2 SqlSessionTemplate 批处理
bean id=\"sqlSessionTemplate\" class=\"org.mybatis.spring.SqlSessionTemplate\"> constructor-arg name=\"sqlSessionFactory\" ref=\"sqlSessionFactory\" // 构造器传入会话工厂> constructor-arg name=\"executorType\" value=\"SIMPLE\" // 构造器设置执行类型:简单
3.2 配置映射器扫描器
bean class=\"org.mybatis.spring.mapper.MapperScannerConfigurer\">property name=\"basePackage\" value=\"com.ryze.bean.mapper\
SSM配置代码
web.xml
<?xml version=\"1.0\" encoding=\"UTF-8\"?><web-app xmlns=\"http://xmlns.jcp.org/xml/ns/javaee\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd\" version=\"4.0\"> <!-- ===================== Spring配置 ===================== --> <!-- 配置spring环境 --> <!-- 手动来指定Spring主配置文件的位置和名称 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:Spring-config/applicationContext.xml</param-value> </context-param> <!-- 配置spring监听器以创造Spring容器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- ===================== SpringMVC配置 ===================== --> <!-- 前端控制器, 处理请求映射 --> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 手动指定SpringMVC配置文件 路径/名称 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:SpringMVC-config/SpringMVC.xml</param-value> </init-param> <!-- 加载模式 --> <load-on-startup>1</load-on-startup> </servlet> <!-- /*拦截所有请求--> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 字符编码过滤器 --> <filter> <filter-name>characterEncodingFilter</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> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 隐藏过滤器,Restful --> <filter> <filter-name>hiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>hiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
SpringMVC.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: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.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd\"> <!-- 启动Spring的一些常用annotation。 如 @Resource 、@PostConstruct、@Autowired--> <context:annotation-config/> <!-- ============== START:SpringMVC的配置文件,含网站跳转的逻辑控制,配置 ==============--> <!-- 组件扫描 --> <context:component-scan base-package=\"com.ryze.controller\"> <!-- 只扫描注解,且为Controller --> <context:include-filter type=\"annotation\" expression=\"org.springframework.stereotype.Controller\"/> </context:component-scan> <!-- 视图解析器 --> <bean class=\"org.springframework.web.servlet.view.InternalResourceViewResolver\"> <!-- 前后缀 --> <property name=\"prefix\" value=\"/WEB-INF/views/\"/> <property name=\"suffix\" value=\".jsp\
MyBatis.xml
<?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> <settings> <!-- 启用驼峰命名: 将下划线映射成驼峰--> <setting name=\"mapUnderscoreToCamelCase\" value=\"true\"/> </settings> <typeAliases> <!-- 起别名--> <package name=\"com.ryze.bean\"/> </typeAliases> <plugins> <!-- 分页插件 --> <plugin interceptor=\"com.github.pagehelper.PageInterceptor\"></plugin> </plugins> <!-- 对于分页插件,Spring启动可能找不到该注册组件,则需要在pom.xml加入如下依赖 <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser</artifactId> <version>0.9.6</version> </dependency> --></configuration>
applicationContext.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:tx=\"http://www.springframework.org/schema/tx\" 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/context https://www.springframework.org/schema/context/spring-context.xsd\"> <!-- 扫描器。除Controller层--> <context:component-scan base-package=\"com.ryze\"> <!-- 排除Controller层--> <context:exclude-filter type=\"annotation\" expression=\"org.springframework.stereotype.Controller\"/> </context:component-scan> <!--=========================START:spring配置文件, 这里主要配置和业务逻辑有关的 =========================--> <!-- ================== 数据库相关START: 数据源,事务控制... ===============--> <!-- 加载数据库配置文件 --> <context:property-placeholder location=\"classpath:DB-config/db.properties\"></context:property-placeholder> <!--配置数据源信息--> <bean id=\"druidDataSource\" class=\"com.alibaba.druid.pool.DruidDataSource\" 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}\"/> </bean> <!--配置事务管理器--> <bean id=\"transactionManager\" class=\"org.springframework.jdbc.datasource.DataSourceTransactionManager\"> <!-- 控制数据源 --> <property name=\"dataSource\" ref=\"druidDataSource\"/> </bean> <!--注解驱动,开启指定事务管理器的注解事务--> <tx:annotation-driven transaction-manager=\"transactionManager\"/> <!-- ================= 数据库相关END ============= --> <!--=========================END:spring配置 =========================--> <!-- ==================START:整合MyBatis ============== --> <!--配置SqlSession(工厂)--> <bean id=\"sqlSessionFactory\" class=\"org.mybatis.spring.SqlSessionFactoryBean\"> <!-- 指定数据源--> <property name=\"dataSource\" ref=\"druidDataSource\"/> <!-- 指定MyBatis全局配置文件的位置--> <property name=\"configLocation\" value=\"classpath:MyBatis-config/MyBatis.xml\"/> <!-- 指定MyBatis,mapper文件的位置--> <property name=\"mapperLocations\" value=\"classpath:com/ryze/mapper/*.xml\"/> </bean> <!-- 配置一个可以执行批量的sqlSession --> <bean id=\"sqlSessionTemplate\" class=\"org.mybatis.spring.SqlSessionTemplate\"> <!-- 构造器传入会话工厂 --> <constructor-arg name=\"sqlSessionFactory\" ref=\"sqlSessionFactory\
GeneratorConfig.xml
<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE generatorConfiguration PUBLIC \"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN\" \"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd\"><generatorConfiguration> <!--其中targetRuntime=\"MyBatis3Simple\" 可以生成简单的操作 --> <context id=\"generator\" targetRuntime=\"mybatis3\"> <commentGenerator> <!-- 抑制所有(映射文件)注释 --> <property name=\"suppressAllComments\" value=\"true\" /> </commentGenerator> <!-- 数据库链接 --> <jdbcConnection driverClass=\"com.mysql.jdbc.Driver\" connectionURL=\"jdbc:mysql://localhost:3306/ssm_crud?useSSL=false\" userId=\"root\" password=\"0000\"> </jdbcConnection> <!-- Java类型解析(JDBC解析到Java类型)--> <javaTypeResolver> <!--是否使用 bigDecimal,默认false。 false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal--> <property name=\"forceBigDecimals\" value=\"false\"/> </javaTypeResolver> <!-- 指定JavaBean实体类的生成位置 --> <!-- 注意,此处的 targetProject 的属性 需要 src\\main 开始, 不能 .\\src,否则找不到路径--> <javaModelGenerator targetPackage=\"com.ryze.bean\" targetProject=\"src\\main\\java\"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name=\"enableSubPackages\" value=\"false\"/> <!-- 是否修剪(从数据库)返回值至JavaBean的String的前后(空格)--> <property name=\"trimStrings\" value=\"true\"/> </javaModelGenerator> <!-- 指定SQL映射文件(*mapper.xml)的生成位置 --> <sqlMapGenerator targetPackage=\"com.ryze.mapper\" targetProject=\".\\src\\main\esources\"> <property name=\"enableSubPackages\" value=\"false\"/> </sqlMapGenerator> <!-- 指定dao接口(mapper接口.Java文件)的生成位置 --> <javaClientGenerator type=\"XMLMAPPER\" targetPackage=\"com.ryze.mapper\" targetProject=\".\\src\\main\\java\"> <property name=\"enableSubPackages\" value=\"false\"/> </javaClientGenerator> <!-- 指定表名; 指定表对应的JavaBean类名--> <table tableName=\"user\" domainObjectName=\"User\"></table> </context></generatorConfiguration>
逆向工程生成代码:
List<String> warnings = new ArrayList<String>(); boolean overwrite = true; //指定逆向工程配置文件 File configFile = new File(\"GeneratorConfig.xml\
<?xml version=\"1.0\" encoding=\"UTF-8\"?><project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\
SSM目录
user表
0 条评论
回复 删除
下一页