idea搭建ssm的注意事项

1.配置tomcat的时候(一般情况下,idea开发支持热部署war exploded):
在这里插入图片描述要打成war包的结构,具体的设置如下:
在这里插入图片描述在这里插入图片描述
这里注意:里建议写上项目的名称,因为idea启动tomcat的时候找路径的问题,要是在tomacat的server.xml的文件中写上文件的路径,这里就不用写,但是,在这里写了server.xml可写可不写,因为idea中的这个优先级要高。

文件包的区别:
file–project structure—Module:界面如下:
在这里插入图片描述
目标所指的文件,只能是test文件专用:如下:
在这里插入图片描述

步骤:
file–new–project—maven,如图:
在这里插入图片描述
点击next:如图
在这里插入图片描述
点击next,接下来如图:
直接默认点击next;
点击完成,等待生成模板,把需要下载的关于maven的jar包生成,等待完成,

完成之后配置tomcat,如下图:
在这里插入图片描述
在这里插入图片描述
这个是最后的效果图
这里推荐的打包方式是web application exploded:具体修改在 file–projectStructure–Artifacts里面设置,创建项目的时候能够自动生成,一般情况不需要修改
在这里插入图片描述

到此:项目搭建算是完成,接下来需要的配置文件一些东西

war:选择:web Application:archive:把当前文件夹以包的形式传到服务器上
war: exploded;选择:web application exploded:以当前文件夹的位置方式上传到服务器上 支持热部署,常用这个方式

配置文件步骤:
1.maven需要下载关于spring的一些jar包
2.web.xml:读取applicationContext.xml文件,

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>

3.新建立applicationContext.xml,,这个时候因为所需要的jar包存在,所以基本不会报错,报错的话缺什么包再下载

注意:如果,手动修改了自己的文件夹的路径,尤其是weapp的话,需要编辑一下默认的路径,下面是修改的具体步骤

在这里插入图片描述
在这里插入图片描述
这样就修改成功了

redis出现的问题:
redis-creating server tcp lisening socket 0.0.0.0:6379:bind no error
解决办法:
在redist根目录:1.redis-cli.exe
2.shutdown
3.exit
4.重新启动一下

redis启动的方式(亲测有效)
1.在redis根目录下:redis-server redis.windows.conf
擦参考文件:https://www.cnblogs.com/dong-dong-1/p/8724127.html
SSM的配置文件具体有几类:
1.spring容器:application.xml
数据库常量配置:jdbc.properties
sping-mvc配置: spring-mvc.xml
mybatis配置文件:mybaties-config.xml
日志文件:logs4.xml
项目入口配置:web.xml
当然还有一写其他的插件,自己用到自己加
具体的大致配置内容:
**a.application.xml**

 1. 增加约束条件
 2. 开启注解扫描:
    <!-- 自动扫描 -->
    方式1:
    <context:component-scan base-package="org.zyyd">
        <!-- 扫描时跳过 @Controller 注解的JAVA类(控制器) -->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
    还可以在指定的package下面扫描对应的bean
    方式2:
    <context:annotation-config>:注解扫描是针对已经在Spring容器里注册过的Bean
 3. 加载数据库的配置信息,比如,jdbc.properties,mybaties-config.xml
 	例如(只是参考,可能还有其他的方式,这里只是举例子):
 	1.直接加载文件,需要在这个文件中都配置好,<import resource="spring-database.xml"/>
 	2.加载一个文件,然后补全配置
 	<context:property-placeholder location="classpath:jdbc.properties" />

  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

    <property name="driverClassName" value="${jdbc.driverClassName}" />

    <property name="url" value="${jdbc.url}" />

     <property name="username" value="${jdbc.username}" />

     <property name="password" value="${jdbc.password}" />

  </bean>
4. 	配置sqlSessionFactory (Spring和Mybatis整合)
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

     <property name="dataSource" ref="dataSource"></property>

    <!-- 指定mybatis配置文件的位置 -->

    <property name="configLocation" value="classpath:sqlMapConfig.xml"></property>
  </bean>
 5.事务控制的配置
 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <!--控制住数据源  -->
        <property name="dataSource" ref="DataSource"></property>
    </bean>  <!--开启基于注解的事务,使用xml配置形式的事务(必要主要的都是使用配置式)  -->
    <aop:config>
        <!-- 切入点表达式 -->
        <aop:pointcut expression="execution(* cn.hfbin.crud.service..*(..))" id="txPoint"/>
        <!-- 配置事务增强 -->
        <aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>
    </aop:config>

    <!--配置事务增强,事务如何切入  -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <!-- 所有方法都是事务方法 -->
            <tx:method name="*"/>
            <!--以get开始的所有方法  -->
            <tx:method name="get*" read-only="true"/>
        </tx:attributes>
    </tx:advice>
    **b.spring-mvc.xml**
    1.注解只扫描controller
    <!-- SpringMVC 的配置文件 ,包含网站跳转的逻辑控制器 -->
    context:component-scan base-package="cn.hfbin" use-default-filters="false">
    <!-- 只扫描控制器 -->
	    <context:component-scan base-package="org.zyyd.*.controller">
	        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
	        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
	    </context:component-scan>
    2.注解驱动
    <!-- 能支持springmvc更高级的一些功能:JSR303校验  ,快捷的ajax ,映射动态请求-->
   <mvc:annotation-driven/>
    3.配置试图解析器
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/WEB-INF/view/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
    用法:
    解析后缀为jsp
    <bean id="viewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!--<property name="viewClass"
			value="org.springframework.web.servlet.view.JstlView" />-->
        <property name="viewClass"
                  value="org.zyyd.base.servlet.HtmlResourceView" />
		<!-- 通过setter方法注入前缀 /WEB-INF/views/showMsg.jsp-->
		<property name="prefix" value="/" />
		<!-- 通过setter方法注入后缀 -->
		<property name="suffix" value=".jsp" />

		<property name="order" value="1" />
	</bean>
	解析后缀为html
	<bean id="htmlviewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.zyyd.base.servlet.HtmlResourceView"/>
        <property name="order" value="2" />
        <property name="prefix" value="/"/>
        <property name="suffix" value=".html" />
        <property name="contentType" value="text/html;charset=UTF-8"></property>
    </bean>
     **c..mybatis-config.xm**l
     1.设置别名
     单个配置:
  <typeAliases> 
   <typeAlias type="cn.edu.hpu.ssm.po.User" alias="user"/>     
  </typeAliases>
 
  批量设置(推荐)
  <typeAliases>  
               <package name="cn.edu.hpu.ssm.po"/>              
  </typeAliases>

搭建过程中遇到的问题以及解决办法

1.如果要修改webapp的路径,比如从一个文件加下面到另一个文件夹下面,则需要修改配置的路径
具体步骤如下:file--Project Structure--model--web ResSource Directories--点击右侧“+”号--直接定位到你已经修改的webpp下面,应用,ok,就可以了
2.@Autowired注解引入实体类的时候,实体类下面红线,启动报错
原因:这个是因为idea的自我配置机制,因为实体类没有加@Repository注解
具体解决办法
办法1:实体类加@Repository注解
办法2:Settings - Editor - Inspections - Spring - Spring Core - Code - Autowiring for Bean Class 勾去掉
3.web.xml中的name下面有红色波浪,启动报错
原因:这个是因为目录改动,导致web.xml错误
解决办法:file--Project Structure--model--Deployment Descriptors--点击“+”号,选择web.xml就可以了,应用,ok,就可以了

注意:个人习惯,spring扫描开启的时候,习惯扫描注解的方式
application.xml:开启扫描,并跳过controller
spring-mvc.xml:  开始注解,只扫描controller,另外加一些其他的直接开启,比如,定时任务等等

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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:task="http://www.springframework.org/schema/task"
       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">

    <!-- 自动扫描 -->

    <context:component-scan base-package="org.mySelfBank">
       <!--扫描时跳过 @Controller 注解的JAVA类(控制器)-->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>




    <!--扫描配置文件(这里指向的是之前配置的那个config.properties)-->
    <context:property-placeholder location="classpath:/config/*.properties" />

    <!--********************************************配置database********************************************-->
    <import resource="spring-database.xml"/>
</beans>

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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:task="http://www.springframework.org/schema/task"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">



    <!--开启注解   注解方式 -->
    <mvc:annotation-driven>
        <!--作用:不能使用匹配模式,比如想login.html  就必须是/login.html 而不能是/login.*-->
        <mvc:path-matching suffix-pattern="false" />
    </mvc:annotation-driven>

    <!--定时任务的配置扫描包-->
    <task:annotation-driven />
    <context:component-scan base-package="org.mySelfBank.task" />


   <!-- 只扫描Controller,不扫描Service-->
    <context:component-scan base-package="org.mySelfBank.controller" >
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
    </context:component-scan>


    <!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
    <!--<bean id="mappingJacksonHttpMessageConverter"
          class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>text/plain;charset=UTF-8</value>
            </list>
        </property>
    </bean>
    &lt;!&ndash; 启动Spring MVC的注解功能,完成请求和注解POJO的映射 &ndash;&gt;
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" lazy-init="false" >
        <property name="messageConverters">
            <list>
                <ref bean="mappingJacksonHttpMessageConverter" />
                &lt;!&ndash; json转换器 &ndash;&gt;
            </list>
        </property>
    </bean>-->

    <!-- 对模型视图名称的解析,在请求时模型视图名称添加前后缀-->
    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       
       
        <property name="prefix" value="/" />
        <!-- 通过setter方法注入后缀 -->
        <property name="suffix" value=".jsp" />

        <property name="order" value="1" />
    </bean>

    <bean id="htmlviewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      
        <property name="order" value="2" />
        <property name="prefix" value="/"/>
        <property name="suffix" value=".html" />
        <property name="contentType" value="text/html;charset=UTF-8"></property>
    </bean>


    <!--这些配置是访问静态资源的时候,不用收到DispatcherServlet的监控,可以自由访问-->
    <!-- 对静态资源文件的访问 不支持访问WEB-INF目录 -->
    <mvc:default-servlet-handler />
    <!--这里是对静态资源的映射-->
    <mvc:resources mapping="/js/**" location="/common/" />
    <mvc:resources mapping="/css/**" location="/common/" />
    <mvc:resources mapping="/img/**" location="/common/" />
    <mvc:resources mapping="/common/**" location="/common/" />
    <mvc:resources mapping="/**" location="/" />



</beans>
ajax传值的时候,需要确定数据格式:contentType: "application/json",
并外,maven依赖需要加上jackson-databind的依赖,否则,会报415的错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值