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

手机网站 html5上海网站开发怎么做

手机网站 html5,上海网站开发怎么做,装修案例介绍文案,食品销售公司网站制作一、Spring注解开发 1 注解开发定义Bean对象【重点】 目的#xff1a;xml配置Bean对象有些繁琐#xff0c;使用注解简化Bean对象的定义 问题导入 问题1#xff1a;使用什么标签进行Spring注解包扫描#xff1f; 问题2#xff1a;Component注解和Controller、Service、R…一、Spring注解开发 1 注解开发定义Bean对象【重点】 目的xml配置Bean对象有些繁琐使用注解简化Bean对象的定义 问题导入 问题1使用什么标签进行Spring注解包扫描 问题2Component注解和Controller、Service、Repository三个衍生注解有什么区别 1.1 基本使用 【第一步】在applicationContext.xml中开启Spring注解包扫描 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:contexthttp://www.springframework.org/schema/contextxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd!--扫描com.itheima包及其子包下的类中注解--context:component-scan base-packagecom.itheima/ /beans【第二步】在类上使用Component注解定义Bean。 //Component定义bean Component(bookDao) public class BookDaoImpl implements BookDao {public void save() {System.out.println(book dao save ...);} } Component public class BookServiceImpl implements BookService {private BookDao bookDao;public void setBookDao(BookDao bookDao) {this.bookDao bookDao;}public void save() {System.out.println(book service save ...);bookDao.save();} }补充说明如果Component注解没有使用参数指定Bean的名称那么类名首字母小写就是Bean在IOC容器中的默认名称。例如BookServiceImpl对象在IOC容器中的名称是bookServiceImpl。 【第三步】在测试类中获取Bean对象 public class AppForAnnotation {public static void main(String[] args) {ApplicationContext ctx new ClassPathXmlApplicationContext(applicationContext.xml);BookDao bookDao (BookDao) ctx.getBean(bookDao);System.out.println(bookDao);//按类型获取beanBookService bookService ctx.getBean(BookService.class);System.out.println(bookService);} }注意在测试类中不要调用bookService的save方法因为还没有给BookServiceImpl中的bookDao赋值调用bookService的save方法会出现空指针异常。 运行结果 1.2 Component三个衍生注解 说明加粗的注解为常用注解 Spring提供**Component**注解的三个衍生注解 Controller用于表现层bean定义Service用于业务层bean定义Repository用于数据层bean定义 Repository(bookDao) public class BookDaoImpl implements BookDao { }Service public class BookServiceImpl implements BookService { } 2 纯注解开发模式【重点】 问题导入 问题1配置类上使用什么注解表示该类是一个配置类 问题2配置类上使用什么注解进行Spring注解包扫描 2.1 纯注解开发模式介绍 Spring3.0开启了纯注解开发模式使用Java类替代配置文件开启了Spring快速开发赛道Java类代替Spring核心配置文件 Configuration注解用于设定当前类为配置类ComponentScan注解用于设定扫描路径此注解只能添加一次多个数据请用数组格式 ComponentScan({com.itheima.service,com.itheima.dao})读取Spring核心配置文件初始化容器对象切换为读取Java配置类初始化容器对象 //加载配置文件初始化容器 ApplicationContext ctx new ClassPathXmlApplicationContext(applicationContext.xml); //加载配置类初始化容器 ApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig.class);2.2 代码演示 【第一步】定义配置类代替配置文件 //声明当前类为Spring配置类 Configuration //Spring注解扫描相当于context:component-scan base-packagecom.itheima/ ComponentScan(com.itheima) //设置bean扫描路径多个路径书写为字符串数组格式 //ComponentScan({com.itheima.service,com.itheima.dao}) public class SpringConfig { }【第二步】在测试类中加载配置类获取Bean对象并使用 public class AppForAnnotation {public static void main(String[] args) {//AnnotationConfigApplicationContext加载Spring配置类初始化Spring容器ApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig.class);BookDao bookDao (BookDao) ctx.getBean(bookDao);System.out.println(bookDao);//按类型获取beanBookService bookService ctx.getBean(BookService.class);System.out.println(bookService);} }3 注解开发Bean作用范围和生命周期管理 问题导入 在类上使用什么注解定义Bean的作用范围 3.1 bean作用范围注解配置 使用Scope定义bean作用范围 Repository Scope(singleton) public class BookDaoImpl implements BookDao { }3.2 bean生命周期注解配置 使用PostConstruct、PreDestroy定义bean生命周期 Repository Scope(singleton) public class BookDaoImpl implements BookDao {public BookDaoImpl() {System.out.println(book dao constructor ...);}PostConstructpublic void init(){System.out.println(book init ...);}PreDestroypublic void destroy(){System.out.println(book destory ...);} }注意PostConstruct和PreDestroy注解是jdk中提供的注解从jdk9开始jdk中的javax.annotation包被移除了也就是说这两个注解就用不了了可以额外导入一下依赖解决这个问题。 dependencygroupIdjavax.annotation/groupIdartifactIdjavax.annotation-api/artifactIdversion1.3.2/version /dependency4 注解开发依赖注入【重点】 问题导入 问题1请描述Autowired注解是如何进行自动装配的 问题2请描述Qualifier注解的作用 4.1 使用Autowired注解开启自动装配模式按类型 Service public class BookServiceImpl implements BookService {//Autowired注入引用类型自动装配模式默认按类型装配Autowiredprivate BookDao bookDao;public void save() {System.out.println(book service save ...);bookDao.save();} }说明不管是使用配置文件还是配置类都必须进行对应的Spring注解包扫描才可以使用。Autowired默认按照类型自动装配如果IOC容器中同类的Bean有多个那么默认按照变量名和Bean的名称匹配建议使用Qualifier注解指定要装配的bean名称 注意自动装配基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据因此无需提供setter方法。 4.2 使用Qualifier注解指定要装配的bean名称 目的解决IOC容器中同类型Bean有多个装配哪一个的问题 Service public class BookServiceImpl implements BookService {//Autowired注入引用类型自动装配模式默认按类型装配Autowired//Qualifier自动装配bean时按bean名称装配Qualifier(bookDao)private BookDao bookDao;public void save() {System.out.println(book service save ...);bookDao.save();} }注意Qualifier注解无法单独使用必须配合Autowired注解使用 4.3 使用Value实现简单类型注入 Repository(bookDao) public class BookDaoImpl implements BookDao {//Value注入简单类型无需提供set方法Value(${name})private String name;public void save() {System.out.println(book dao save ... name);} }以上Value注解中使用${name}从属性文件中读取name值那么就需要在配置类或者配置文件中加载属性文件。 Configuration ComponentScan(com.itheima) //PropertySource加载properties配置文件 PropertySource({classpath:jdbc.properties}) //{}可以省略不写 public class SpringConfig { }注意PropertySource()中加载多文件请使用数组格式配置不允许使用通配符* 5 注解开发管理第三方Bean【重点】 问题导入 导入自己定义的配置类有几种方式 【第一步】单独定义配置类 public class JdbcConfig {//Bean表示当前方法的返回值是一个bean对象添加到IOC容器中Beanpublic DataSource dataSource(){DruidDataSource ds new DruidDataSource();ds.setDriverClassName(com.mysql.jdbc.Driver);ds.setUrl(jdbc:mysql://localhost:3306/spring_db);ds.setUsername(root);ds.setPassword(root);return ds;} }【第二步】将独立的配置类加入核心配置 方式1Import注解导入式 Configuration ComponentScan(com.itheima) //Import:导入配置信息 Import({JdbcConfig.class}) public class SpringConfig { }方式2ComponentScan扫描式 Configuration ComponentScan({com.itheima.config,com.itheima.service,com.itheima.dao}) //只要com.itheima.config包扫到了就行三个包可以合并写成com.itheima public class SpringConfig { }6 注解开发为第三方Bean注入资源【重点】 问题导入 配置类中如何注入简单类型数据如何注入引用类型数据 6.1 简单类型依赖注入 public class JdbcConfig {//1.定义一个方法获得要管理的对象Value(com.mysql.jdbc.Driver)private String driver;Value(jdbc:mysql://localhost:3306/spring_db)private String url;Value(root)private String userName;Value(root)private String password;//2.Bean表示当前方法的返回值是一个bean对象添加到IOC容器中Beanpublic DataSource dataSource(){DruidDataSource ds new DruidDataSource();ds.setDriverClassName(driver);ds.setUrl(url);ds.setUsername(userName);ds.setPassword(password);return ds;} }说明如果Value()中使用了EL表达式读取properties属性文件中的内容那么就需要加载properties属性文件。 6.2 引用类型依赖注入 //Spring会自动从IOC容器中找到BookDao对象赋值给参数bookDao变量如果没有就会报错。 Bean public DataSource dataSource(BookDao bookDao){System.out.println(bookDao);DruidDataSource ds new DruidDataSource();ds.setDriverClassName(driver);ds.setUrl(url);ds.setUsername(userName);ds.setPassword(password);return ds; }说明引用类型注入只需要为bean定义方法设置形参即可容器会根据类型自动装配对象 7 注解开发总结 二、Spring整合其他技术【重点】 1 Spring整合mybatis【重点】 1.1 思路分析 问题导入 mybatis进行数据层操作的核心对象是谁 1.1.1 MyBatis程序核心对象分析 1.1.2 整合MyBatis 使用SqlSessionFactoryBean封装SqlSessionFactory需要的环境信息 使用MapperScannerConfigurer加载Dao接口创建代理对象保存到IOC容器中 1.2 代码实现 问题导入 问题1Spring整合mybatis的依赖叫什么 问题2Spring整合mybatis需要管理配置哪两个Bean这两个Bean作用分别是什么 【前置工作】 在pom.xml中添加spring-context、druid、mybatis、mysql-connector-java等基础依赖。准备service和dao层基础代码 public interface AccountService {void save(Account account);void delete(Integer id);void update(Account account);ListAccount findAll();Account findById(Integer id);} Service public class AccountServiceImpl implements AccountService {Autowiredprivate AccountDao accountDao;public void save(Account account) {accountDao.save(account);}public void update(Account account){accountDao.update(account);}public void delete(Integer id) {accountDao.delete(id);}public Account findById(Integer id) {return accountDao.findById(id);}public ListAccount findAll() {return accountDao.findAll();} } public interface AccountDao {Insert(insert into tbl_account(name,money)values(#{name},#{money}))void save(Account account);Delete(delete from tbl_account where id #{id} )void delete(Integer id);Update(update tbl_account set name #{name} , money #{money} where id #{id} )void update(Account account);Select(select * from tbl_account)ListAccount findAll();Select(select * from tbl_account where id #{id} )Account findById(Integer id); }【第一步】导入Spring整合Mybatis依赖 dependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion5.2.10.RELEASE/version /dependencydependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion1.3.0/version /dependency【第二步】创建JdbcConfig配置DataSource数据源 jdbc.drivercom.mysql.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/spring_db?useSSLfalse jdbc.usernameroot jdbc.passwordrootpublic class JdbcConfig {Value(${jdbc.driver})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 ds new DruidDataSource();ds.setDriverClassName(driver);ds.setUrl(url);ds.setUsername(userName);ds.setPassword(password);return ds;} }【第三步】创建MybatisConfig整合mybatis public class MybatisConfig {//定义beanSqlSessionFactoryBean用于产生SqlSessionFactory对象Beanpublic SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){SqlSessionFactoryBean ssfb new SqlSessionFactoryBean();ssfb.setTypeAliasesPackage(com.itheima.domain);ssfb.setDataSource(dataSource);return ssfb;}//定义bean返回MapperScannerConfigurer对象Beanpublic MapperScannerConfigurer mapperScannerConfigurer(){MapperScannerConfigurer msc new MapperScannerConfigurer();msc.setBasePackage(com.itheima.dao);return msc;} }【第四步】创建SpringConfig主配置类进行包扫描和加载其他配置类 Configuration ComponentScan(com.itheima) //PropertySource加载类路径jdbc.properties文件 PropertySource(classpath:jdbc.properties) Import({JdbcConfig.class,MybatisConfig.class}) public class SpringConfig { }【第五步】定义测试类进行测试 public class App {public static void main(String[] args) {ApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig.class);AccountService accountService ctx.getBean(AccountService.class);Account ac accountService.findById(1);System.out.println(ac);} }2 Spring整合Junit单元测试【重点】 问题导入 Spring整合Junit的两个注解作用分别是什么 【第一步】导入整合的依赖坐标spring-test !--junit-- dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/version /dependency !--spring整合junit-- dependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion5.1.9.RELEASE/version /dependency【第二步】使用Spring整合Junit专用的类加载器 【第三步】加载配置文件或者配置类 //【第二步】使用Spring整合Junit专用的类加载器 RunWith(SpringJUnit4ClassRunner.class) //【第三步】加载配置文件或者配置类 ContextConfiguration(classes {SpringConfiguration.class}) //加载配置类 //ContextConfiguration(locations{classpath:applicationContext.xml})//加载配置文件 public class AccountServiceTest {//支持自动装配注入beanAutowiredprivate AccountService accountService;Testpublic void testFindById(){System.out.println(accountService.findById(1));}Testpublic void testFindAll(){System.out.println(accountService.findAll());} }注意junit的依赖至少要是4.12版本,可以是4.13等版本,否则出现如下异常
http://www.zqtcl.cn/news/743478/

相关文章:

  • 闭站保护对网站影响公司主网站百度收录大量网站之类的信息
  • 在阿里云上建立网站的步骤在360网站做公告怎么弄
  • wordpress给公司建站安徽省干部建设教育网站
  • 做的网站需要买什么系统服务器找第三方做网站 需要注意
  • 网页设计模板网站推荐互联网创业项目网
  • 北京做网站的大公司动态列线图怎么制作网页
  • 江西省城乡和住房建设部网站google play应用商店
  • 网站前台设计过程泰安千橙网络科技有限公司
  • 可以做来电名片的网站网站开发频道构架
  • 网站备案没通过不了宣传片拍摄的意义
  • 专业提供网站建设服务包括做解析视频网站违法莫
  • 天津工程建设协会网站wordpress 自由评论
  • 南同网站建设hr系统管理软件排名
  • 水果网店网站建设策划书做企业形象网站
  • 小清新博客网站软件公司有哪些部门
  • 企业网站托管一年多少钱想学电商运营在哪里学
  • 网站建设自评报告手机电商平台怎么做的
  • 安阳网站建设优化免费的免抠图素材网站
  • 网站主机有什么用seo网站课程
  • 网站关键词优化软件网站的二次开发
  • 网站建设技术服务费怎么入账杭州网站推广与优化
  • 咨询类网站建设方案书重庆360网络推广
  • 简单网站模板下载wordpress调用数据库字段
  • 万网空间最多放几个网站好的网站首页的特点
  • .net做网站安全吗wordpress取消邮件验证
  • 沈阳做网站推广唐山网站怎么做seo
  • 网站备案说主体已注销刷关键词指数
  • 学做网站教学百度网盘动软代码生成器 做网站
  • 长辛店网站建设手机评测网站
  • 网站建设公司选哪个好软件开发