当前位置: 首页 > wzjs >正文

做营销网站建设想开个网站卖衣服的怎么做

做营销网站建设,想开个网站卖衣服的怎么做,地方网站发展,软件工程项目这里写目录标题1.前期准备1.1 创建Spring配置类2.Spring整合MyBatis2.1 Spring注册数据源(dataSource)2.2 Spring整合mybatis(添加mybatis配置类)2.2.1 SqlSessionFactoryBean2.2.2 MapperScannerConfigurer2.3 Spring整合事务管理3.Spring整合SpringMvc3.1 SpringMvc配置类3.2…

这里写目录标题

  • 1.前期准备
    • 1.1 创建Spring配置类
  • 2.Spring整合MyBatis
    • 2.1 Spring注册数据源(dataSource)
    • 2.2 Spring整合mybatis(添加mybatis配置类)
      • 2.2.1 SqlSessionFactoryBean
      • 2.2.2 MapperScannerConfigurer
    • 2.3 Spring整合事务管理
  • 3.Spring整合SpringMvc
    • 3.1 SpringMvc配置类
    • 3.2 初始化Spring、SpringMvc容器
    • 3.3 表现层数据封装
    • 3.4 全局异常处理器

1.前期准备

一、导入坐标

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.10.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.10.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.2.10.RELEASE</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency></dependencies>

1.1 创建Spring配置类

功能:使用SpringConfig配置类替代application.xml

@Configuration
@ComponentScan(value = "com.itheima",excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class)
)
public class SpringConfig {
}

1.@Configuration

    该注解在类上,使得这个类的功能同于一个bean xml配置文件,可以在这个类中管理创建Bean。


2.@ComponentScan

    该注解默认会扫描该类所在的包下所有的配置类,相当于之前的 <context:component-scan>

回顾以往xml的配置

<!-- 开启注解扫描 -->
<context:component-scan base-package="cn.itcast.usermanage.service"/>

2.Spring整合MyBatis

一、修改Spring配置类

@Configuration
@ComponentScan(value = "com.itheima",excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class)
)
@PropertySource("jdbc.properties")
@Import({JdbcConfig.class, MybatisConfig.class})
public class SpringConfig {
}

@PropertySource

    通过@PropertySource注解可以将properties配置文件中的key/value存储到Spring的Environment中,Environment接口提供了方法去读取配置文件中的值,参数是properties配置文件中定义的key值。
    当然了,也可以使用@Value注解用${}占位符为bean的属性注入值。

回顾以往xml的配置

<!--    加载外部的properties文件-->
<context:property-placeholder location="classpath:jdbc.properties"/>

@Import
    引入其他的配置类,需要在主配置类里引用,@Import(SecondJavaConfig.class)

回顾以往是怎么读取其他Spring配置文件的

1.将Spring主配置文件、Spring整合mybatis的配置文件、Spring整合事务的配置文件都统一放在spring文件夹下,并有统一的命名规范

在这里插入图片描述

2.初始化Spring容器时,读取这些文件,构造一个完整的Spring容器

在这里插入图片描述

    mybatis、transaction这些文件都可以写到主配置中,但是为了区分功能(解耦),所以各自定义了自己的配置文件
    在注解开发中,我们可以将其他配置类引入到主配置类中,这样只要读取主配置类即可


二、添加jdbc.properties

jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/my_database
jdbc.username=root
jdbc.password=root

2.1 Spring注册数据源(dataSource)

public class JdbcConfig {@Value("${jdbc.driverClass}")private String driver;@Value("${jdbc.url}")private String url;@Value("${jdbc.username}")private String username;@Value("${jdbc.password}")private String password;@Beanpublic DataSource dataSource() {DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName(driver);dataSource.setUrl(url);dataSource.setUsername(username);dataSource.setPassword(password);return dataSource;}
}

    mybatis的底层是jdbc,mybatis是对jdbc的封装,此处我们将数据源的配置放到jdbc配置类中(其实也能放到mybatis的配置类,效果一样)

@Bean
    注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。

类同于

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"init-method="init" 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>

2.2 Spring整合mybatis(添加mybatis配置类)

  • 配置SqlSessionFactoryBean
    • 注入数据源
    • 设置全局配置(此处设置了别名)
  • 配置MapperScannerConfigurer
public class MybatisConfig {// 配置SqlSessionFactoryBean@Beanpublic SqlSessionFactoryBean SqlSessionFactory(DataSource dataSource) {SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();// 注入数据源factoryBean.setDataSource(dataSource);// 扫描类型别名factoryBean.setTypeAliasesPackage("com.itheima.domain");return factoryBean;}@Beanpublic MapperScannerConfigurer mapperScannerConfigurer() {MapperScannerConfigurer msc = new MapperScannerConfigurer();// 扫描mapper接口msc.setBasePackage("com.itheima.dao");return msc;}
}

2.2.1 SqlSessionFactoryBean

一、回顾mybatis怎么初始化SqlSessionFactory
   在没有引入Spring概念时,我们是手动构建SqlSessionFactory,这个过程比较麻烦,现在我们有了Spring

public static void main(String[] args) throws IOException {String resource = "mybatis-config.xml";// 读取配置文件InputStream inputStream = Resources.getResourceAsStream(resource);// 构建sqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 获取sqlSessionSqlSession sqlSession = sqlSessionFactory.openSession(true);// 获取对应mapperOrderMapper orderMapper= sqlSession.getMapper(OrderMapper.class);Order order = orderMapper.queryOrderWithUser("20140921001");System.out.println(order);}

   在mybatis-spring的整合包下,存在一个sqlSessionFactoryBean,它是用来在spring容器中生产sqlSessionFactory的工厂Bean
在这里插入图片描述

二、回顾Spring整合mybatis(xml配置方式)
1.在applicationContext-mybatis.xml中定义SqlSessionFactoryBean
2.注入数据源以及mybatis全局配置(mybatis-config.xml)

<!-- spring构建sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 指定mybatis的数据源 --><property name="dataSource" ref="dataSource"></property><!-- 指定mybatis的全局配置文件 --><property name="configLocation" value="classpath:mybatis/mybatis-config.xml"></property>
</bean>

2.2.2 MapperScannerConfigurer

   MapperScannerConfigurer是为了解决MapperFactoryBean繁琐而生的,有了MapperScannerConfigurer就不需要我们去为每个映射接口去声明一个bean了。大大缩减了开发的效率。

一、回顾以往的mapper扫描

<mappers><package name="com.itheima.mapper"/>
</mappers>

2.3 Spring整合事务管理

  • 注解开启事务支持
  • 注册事务管理器(根据不同的持久化框架)
  • 给需要被事务管理的类、方法…添加@Transaction

一、添加注解 @EnableTransactionManagement 开启事务支持

@Configuration
@ComponentScan(value = "com.itheima",excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class)
)
@PropertySource("jdbc.properties")
@Import({JdbcConfig.class, MybatisConfig.class})
@EnableTransactionManagement
public class SpringConfig {
}

二、在jdbc配置类中注册事务管理器

@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource) {// 不同的持久化框架,选择不同的事务管理器DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();transactionManager.setDataSource(dataSource);return transactionManager;
}

不同的持久化框架,需要使用不同的事务管理器

Spring为不同的持久化框架提供了不同PlatformTransactionManager接口实现:

事务说明
org.springframework.jdbc.datasource.DataSourceTransactionManager使用Spring JDBCiBatis进行持久化数据时使用
org.springframework.orm.hibernate5.HibernateTransactionManager使用Hibernate5.0版本进行持久化数据时使用
org.springframework.orm.jpa.JpaTransactionManager使用JPA进行持久化时使用
org.springframework.jdo.JdoTransactionManager当持久化机制是Jdo时使用
org.springframework.transaction.jta.JtaTransactionManager使用一个JTA实现来管理事务,在一个事务跨越多个资源时必须使用

三、在类、方法上添加事务注解@Transactional

@Transactional
public class BookServiceImpl implements BookService {.....
}

回顾之前我们是怎么注册事务管理器的

<!-- druid连接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://127.0.0.1:3306/my_database"/><property name="username" value="root"/><property name="password" value="root"/></bean><!-- 第一步:定义具体的平台事务管理器(DataSource事务管理器) --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 注入数据源 --><property name="dataSource" ref="dataSource"/></bean>

3.Spring整合SpringMvc

3.1 SpringMvc配置类

@Configuration
@ComponentScan("com.itheima.controller")
@EnableWebMvc
public class SpringMvcConfig {
}

@EnableWebMvc
有很多作用,这里仅使用其一种作用:开启自动转换json数据的支持


3.2 初始化Spring、SpringMvc容器

public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer {// 初始化Spring容器protected Class<?>[] getRootConfigClasses() {return new Class[]{SpringConfig.class};}// 初始化SpringMvc容器protected Class<?>[] getServletConfigClasses() {return new Class[]{SpringMvcConfig.class};}protected String[] getServletMappings() {return new String[]{"/"};}
}

3.3 表现层数据封装

我们在进行业务操作后,响应给前端的数据格式可能是不同的,例如

  • 增、改、删操作,返回了boolean类型
  • 查询操作返回了对象类型

不便于前端对数据的解析,所以一般会设置成统一格式进行返回

设置统一的数据返回结果类

public class Result {private Object data;private Integer code;private String msg;
}

Result类中的字段并不是固定的,可以根据需要自行增减 提供若干个构造方法,方便操作

3.4 全局异常处理器

   所有的异常均需抛出到表现层进行处理,但是这样又出现了一个问题:表现层处理异常,每个方法中单独书写,代码书写量大且意义不强!

   使用AOP的思维,针对所有@Controller进行异常处理,SpringMvc针对此需求提供了一个异常处理器

全局异常处理器:
集中的、统一的处理项目中出现的异常(使用一个类就能搞定所有的异常)

@RestControllerAdvice
public class ProjectExceptionAdvice {    @ExceptionHandler(Exception.class)public Result doException(Exception ex){return new Result(666,null);}
}

@RestControllerAdvice
声明这个类是用于做异常处理(Spring需要读取到此类)

@RestControllerAdvice和@ControllerAdvice最大的不同在于:@RestControllerAdvice不用加@ResponseBody


@ExceptionHandler
指定拦截的异常


http://www.dtcms.com/wzjs/831912.html

相关文章:

  • 广安市建设局官方网站安徽省建设监理协会
  • 亚马逊网站如何做商家排名视频剪辑培训机构哪个好
  • 广东圆心科技网站开发网站模板设计wordpress远程后台设置
  • 网站管理员权限有哪些东莞常平隐贤山庄门票多少钱
  • 扬州学做网站培训多少钱网站建设要经历哪些步骤?
  • 医院招聘网站建设和维护人员单页网站如何做排名
  • 网站付费推广方式机票酒店 网站建设
  • 滨州淄博网站建设wordpress7.6
  • 网站的后缀名怎么建设制作网站公司 英语网站首页
  • 做淘宝客网站挣钱建站公司售后服务
  • 做图书网站赚钱么wordpress数据库批量删评论
  • app展示网站模板seo优化步骤
  • 青龙桥网站建设将网站做成logo怎么做
  • 免费网站建设找哪家办公用品企业网站建设方案
  • 西安网站开发培训价格职业技能培训平台
  • 南平武夷山网站建设自己做网站统计
  • 网站空间租用wordpress 应用模板
  • 怎么区别网站开发语言html 购物网站
  • 使用html制作个人主页台州专业关键词优化
  • 北京手机网站搭建费用咸阳市住房和城乡建设局网站
  • 网站后台欢迎界面网站开发树形图
  • 丹东做网站的公司手机端企业网站源码下载
  • 做外贸有哪些好的网站有哪些内容百度广告投放平台叫什么
  • 百度中搜到网站名字德州app开发公司
  • 做家电家具回收用哪个网站好网站制作怎样容易
  • 上海定制建站网站建设网站小图标怎么制作
  • 宁波企业网站开发公司如何保存网站上的图片不显示图片
  • 建立个人网站的费用校园网站建设的重要性
  • 网站建设合同管辖地百度入驻
  • 信用网站建设是国家统一部署C2C电子商务网站管理系统