Java基础知识——SSM项目架构

Spring整合mybatis:
整合目的:不需要繁琐的创建SqlSessionFactory等,而只需要能够将DAO代理对象注入到Service对象调用方法即可。
所以我们需要:编写spring-mybatis配置类
三个作用:
1:dataSource 配置数据源
2:sqlSessionFactory配置工厂,加载数据源
3:配置MapperScannerConfigurer
MapperScannerConfigurer类似于component-scan,能够扫描Component等进行注入,但是区别在于,他会将扫描的接口全部创建为MapperFactoryBean。
MapperFactoryBean会结合SqlSessionFactory创建代理类并且实现UserMapper 接口,从而能够进行数据库操作
注入和代理

注意:如果是无配置文件的实现方式,可以直接利用MapperScannerConfigurer扫描

@Repository
public interface ProjectDao {
	/**获取所有项目信息*/
	@Select("select * from tms_projects")
	List findObjects();

而如果是配置文件型,两种方法
1:MapperScannerConfigurer扫描:配置文件和@Repository接口在同一包下且名字必须相同
2:需要在sqlSessionFactory进行配置,利用Factory扫描配置类


				
		classpath:cn/tedu/ttms/*/dao/*.xml	
				
			

并且,如果使用maven,会默认忽视所有xml文件,所以还需要在pom.xml中配置


        
            
                src/main/java
                
                    **/*.xml
                
            
            
                src/main/resources
            
        
    				

原理:
WEB-INF/classes:java,resources里的源码打包进入和编译后的class文件
原来方式:但是仅仅会打包Java下的.java文件和resources里的所有文件,而.xml等文件会自动忽略。
目的:有时候,比如mybatis的mapper.xml文件,我们习惯把它和Mapper.java放一起,都在src/main/java下面,这样利用maven打包时,就需要修改pom.xml文件,来把mapper.xml文件一起打包进jar或者war里了,否则,这些文件不会被打包的。设置如上
注意点:
1:如果build中设置了打包方式,那么原来方式就会失效。所以记住要

			
                src/main/resources
            

2:打包进来的xml文件不能是空文件否则无法解析(sax解析失败),也不能出错

数据库配置:
数据库分为5.0和8.0,区别在于
1:jar包改变。8.0需要使用mysql.connector.mysql8.0的jar包
2:需要使用com.mysql.cj.jdbc.Driver驱动
3:url需要声明useSSL=false,如果使用true加密协议,可能因为连接时间过长导致报错
spring-mybatis代码如下:



	
		
		
		
		
		
	

     
	   
	   
	   
	   
			
			classpath:mapper/*/*.xml
			classpath:cn/tedu/ttms/*/dao/*.xml		
			
		
	 
    
	
		
	

Spring 整合SpringMVC:
目的:使得Spring中的@Service不需要再通过ClassPathXmlApplicationContext进行获取工厂获取Bean, 而是通过控制反转的方式进行注入@Contoller

所以我们需要配置:
一:配置web.xml,进行配置文件的启动
这里的目的是进行加载配置文件,通过init-param配置classpath:spring-*.xml,加载我们配置的所有xml文件。并且映射访问地址,相当于对访问地址设置监听



  ttms1.01
   
		dispatcherServlet
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:spring-*.xml
		
		1
	
	
		dispatcherServlet
		*.do
	

二:配置spring-mvc.xml,进行配置文件的启动
1:配置需要的视图解析器ViewResolver
2:进行注解扫描component-scan,扫描我们定义的@Controller(包含适配器和HandlerMapping注解)
3:开启注解和类型转换[非必须]

   

    

完整的spring-mvc代码如下:


  







    


    
    
    
  


	
	
	
	
	
	
  

maven项目的结构:

编译前:
注意webapp=WEB_INF+各种资源如图片,js,css
views通常是jsp页面
Java基础知识——SSM项目架构_第1张图片

编译后:
classpath=WEB_INF/classes
WEB-INF/classes:java,resources里的源码打包进入和编译后的class文件
WEB-INF/lib:pom.xml中引入的jar包
META-INF:描述jar文件中的信息的一个目录,理解为所有jar中META-INF目录的集合
jar文件:class文件的zip压缩存档,有META-INF目录,含有manifest.mf的文件,包含了jar文件的内容描述,在应用程序运行时向JVM提供应用程序的信息
Java基础知识——SSM项目架构_第2张图片

你可能感兴趣的:(Java基础知识)