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

优化网站设计想自己开发一款软件

优化网站设计,想自己开发一款软件,仿别人的网站,青羊区网站设计DI依赖注入 IoC#xff08;Inversion Of Control#xff09;控制翻转#xff0c;Spring反向控制应用程序所需要使用的外部资源DI#xff08;Dependency Injection#xff09;依赖注入#xff0c;应用程序运行依赖的资源由Spring为其提供#xff0c;资源进入应用程序的方…DI依赖注入 IoCInversion Of Control控制翻转Spring反向控制应用程序所需要使用的外部资源DIDependency Injection依赖注入应用程序运行依赖的资源由Spring为其提供资源进入应用程序的方式称为注入站在spring角度就是ioc站在应用程序角度就是di可以理解为Spring提供的给对象赋值的功能 IoC与DI的关系IoC与DI是同一件事站在不同角度看待问题 set注入 名称property 类型标签 归属bean标签 作用使用set方法的形式为bean提供资源 格式 beanproperty//bean基本属性 !--property: 调用set方法注入参数/属性值name: 属性名称value: 注入的值-- property namepropertyName valuepropertyValue refbeanId/name对应bean中的属性名要求该属性必须提供可访问的set方法严格规范为此名称是set方法对应名称value设定非引用类型属性对应的值不能与ref同时使用ref设定引用类型属性对应bean的id 不能与value同时使用注意一个bean可以有多个property标签Set注入包装类型也会被看做是普通的数据类型去用都用value注入对象用ref其他用value 演示 public interface UserDao {void save(); }public class UserDaoImpl implements UserDao {Overridepublic void save() {System.out.println(UserDao执行);} }public class UserServiceImpl implements UserService {// 添加引用类型和非引用的变量private UserDao userDao;private int num;private String version;// 1、对需要注入的变量添加set方法public void setUserDao(UserDao userDao) {this.userDao userDao;}public void setNum(int num) {this.num num;}public void setVersion(String version) {this.version version;}Overridepublic void save() {System.out.println(UserService执行 num version);userDao.save();} }?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd!--将要注入的资源声明为bean--bean iduserService classcom.itzhuzhu.service.impl.UserServiceImpl!--将要注入的引用类型的变量通过property实行进行注入对应的name是注入的变量名ref是bean的id,Integer也是非引用--!--引用类型用ref 其他都用value--property nameuserDao refuserDao/property namenum value1998/property nameversion valueitzhuzhu//bean!--2、将要注入的资源声明为bean--bean iduserDao classcom.itzhuzhu.service.dao.impl.UserDaoImpl/ /beans构造器注入 名称constructor-arg 类型标签 归属bean标签 作用使用构造方法的形式为bean提供资源兼容早期遗留系统的升级工作 格式 beanconstructor-arg / /bean基本属性 constructor-arg nameargsName valueargsValue /​ name对应bean中的构造方法所携带的参数名 ​ value设定非引用类型构造方法参数对应的值不能与ref同时使用 其他属性 constructor-arg indexarg-index typearg-type refbeanId/ref设定引用类型构造方法参数对应bean的id 不能与value同时使用type 设定构造方法参数的类型用于按类型匹配参数或进行类型校验index 设定构造方法参数的位置用于按位置匹配参数参数index值从0开始计数注意一个bean可以有多个constructor-arg标签 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd!--2、将要注入的资源声明为bean--bean iduserDao classcom.itzhuzhu.service.dao.impl.UserDaoImpl/bean iduserService classcom.itzhuzhu.service.impl.UserServiceImpl!--使用构造方法进行set注入需要保障注入的属性与bean中定义的属性类型一致,因为顺序是按照构造方法的顺序默认排的--!--一致指的是顺序或类型可以使用name和index解决问题--constructor-arg nameuserDao refuserDao/constructor-arg namenum value1998/constructor-arg nameversion valueitzhuzhu//bean /beanspublic class UserServiceImpl implements UserService {// 添加引用类型和非引用的变量private UserDao userDao;private int num;private String version;private BookDao bookDao;public UserServiceImpl(UserDao userDao, int num, String version, BookDao bookDao) {this.userDao userDao;this.num num;this.version version;this.bookDao bookDao;}// 1、对需要注入的变量添加set方法public void setUserDao(UserDao userDao) {this.userDao userDao;}public void setNum(int num) {this.num num;}public void setVersion(String version) {this.version version;}public void setBookDao(BookDao bookDao) {this.bookDao bookDao;}Overridepublic void save() {System.out.println(UserService执行 num version);userDao.save();bookDao.save();} }集合类型数据注入 名称arraylistsetmapprops 类型标签 归属property标签 或 constructor-arg标签 作用注入集合数据类型属性 格式 propertylist/list /property集合类型数据注入——list property nameallistvalueitzhuzhu/valuevalue66666/value/list /property集合类型数据注入——props property namepropertiespropsprop keynameitzhuzhu123/propprop keyvalue666666/prop/props /property集合类型数据注入——array property namearrarrayvalue123456/valuevalue66666/value/array /property集合类型数据注入——set property namehssetvalueitzhuzhu/valuevalue66666/value/set /property集合类型数据注入——map property namehmmapentry keyname valueitzhuzhu123/entry keyvalue value6666666666//map /property演示 public class BookDaoImpl implements BookDao {private ArrayList al;private Properties properties;private int[] arr;private HashSet hs;private HashMap hm ;public void setAl(ArrayList al) {this.al al;}public void setProperties(Properties properties) {this.properties properties;}public void setArr(int[] arr) {this.arr arr;}public void setHs(HashSet hs) {this.hs hs;}public void setHm(HashMap hm) {this.hm hm;}public void save() {System.out.println(book dao running...);System.out.println(ArrayList:al);System.out.println(Properties:properties);for (int i 0; i arr.length; i) {System.out.println(arr[i]);}System.out.println(HashSet:hs);System.out.println(HashMap:hm);} }配置文件 bean iduserDao classcom.itzhuzhu.dao.impl.UserDaoImpl/bean iduserService classcom.itzhuzhu.Service.impl.UserServiceImpl p:bookDao-refbookDao p:userDao-refuserDao/bean idbookDao classcom.itzhuzhu.dao.impl.BookDaoImplproperty nameallistvalueitzhuzhu/valuevalue666666/value/list/propertyproperty namepropertiespropsprop keynameitzhuzhu123/propprop keyvalue666666/prop/props/propertyproperty namearrarrayvalue12345/valuevalue666666/value/array/propertyproperty namehssetvalueitzhuzhu/valuevalue666666/value/set/propertyproperty namehmmapentry keyname valueitzhuzhu123/entry keyvalue value666666//map/property/beanUserServiceImpl调用BookDao的save(); 使用p命名空间简化配置 名称p:propertyNamep:propertyName-ref 类型属性 归属bean标签 作用为bean注入属性值 格式 bean p:propertyNamepropertyValue p:propertyName-refbeanId/注意使用p命令空间需要先开启spring对p命令空间的的支持在beans标签中添加对应空间支持 beans xmlnshttp://www.springframework.org/schema/beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:phttp://www.springframework.org/schema/pxsi:schemaLocationhttp://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd /beans演示 bean iduserService classcom.itzhuzhu.service.impl.UserServiceImpl p:userDao-refuserDaop:bookDao-refbookDao/C标签代替构造方法 引入C名称空间 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instance!-- c标签命名空间 --xmlns:chttp://www.springframework.org/schema/cxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd使用c标签 !--c:_0: 表示给指定参数列表的下标参数注入值c:name: 指定参数列表中的参数名称注入值--bean classcom.itheima.xml.Person c:_03 c:nameJason3/SpEL Spring提供了对EL表达式的支持统一属性注入格式 类型属性值 归属value属性值 作用为bean注入属性值 格式 property valueEL/bean注意所有属性值不区分是否引用类型统一使用value赋值 所有格式统一使用 value“********” 常量 #{10} #{3.14} #{2e5} #{‘itcast’} 引用bean #{beanId} 引用bean属性 #{beanId.propertyName} 引用bean方法 beanId.methodName().method2() 引用静态方法 T(java.lang.Math).PI 运算符支持 #{3 lt 4 4 ge 3} 正则表达式支持 #{user.name matches‘[a-z]{6,}’} 集合支持 #{likes[3]} 演示 bean iduserService classcom.itzhuzhu.service.impl.UserServiceImplproperty nameuserDao value#{userDao}/property namebookDao value#{bookDao}/property namenum value#{666666666}/property nameversion value#{itzhuzhu}/ 字符加单引号/beanproperties文件 Spring提供了读取外部properties文件的机制使用读取到的数据为bean的属性赋值 操作步骤 1.准备外部properties文件 2.开启context命名空间支持 xmlns:context 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.xds3.加载指定的properties文件 context:property-placeholder locationclasspath:filename.properties/ context:property-placeholder locationclasspath:*.properties/4.使用加载的数据 bean iduserDao classcom.itzhuzhu.service.impl.UserDaoImpl!--name是对应的属性名value是对应配置文件的属性名--!--property namepropertyName value${propertiesName}/--property nameuserName value${username}/property namepassword value${password}//bean注意如果需要加载所有的properties文件可以使用*.properties表示加载所有的properties文件 注意读取数据使用${propertiesName}格式进行其中propertiesName指properties文件中的属性名 import导入配置文件 名称import 类型标签 归属beans标签 作用在当前配置文件中导入其他配置文件中的项 格式 beansimport / /beans基本属性 resource加载的配置文件名 import resource“applicationContext-user.xml/​ resource加载的配置文件名 Spring容器加载多个配置文件 new ClassPathXmlApplicationContext(applicationContext-user.xml,applicationContext-book.xml);Spring容器中的bean定义冲突问题 同id的bean后定义的覆盖先定义的 导入配置文件可以理解为将导入的配置文件复制粘贴到对应位置 导入配置文件的顺序与位置不同可能会导致最终程序运行结果不同 ApplicationContext ApplicationContext是一个接口提供了访问spring容器的API ClassPathXmlApplicationContext是一个类实现了上述功能 ApplicationContext的顶层接口是BeanFactory BeanFactory定义了bean相关的最基本操作 ApplicationContext在BeanFactory基础上追加了若干新功能 对比BeanFactory BeanFactory创建的bean采用延迟加载形式使用才创建 ApplicationContext创建的bean默认采用立即加载形式 FileSystemXmlApplicationContext 可以加载文件系统中任意位置的配置文件而ClassPathXmlApplicationContext只能加载类路径下的配置文件 BeanFactory Resource res new ClassPathResource(applicationContext.xml); BeanFactory bf new XmlBeanFactory(res); UserService userService (UserService)bf.getBean(userService);第三方资源配置 阿里数据源方案Druid 先在pom加Druid配置 dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.8/version/dependency然后再在applicationContext加下面的 bean iddataSource classcom.alibaba.druid.pool.DruidDataSourceproperty namedriverClassName valuecom.mysql.jdbc.Driver/propertyproperty nameurl valuejdbc:mysql://localhost:3306/spring_ioc/propertyproperty nameusername valueroot/propertyproperty namepassword valueroot/property /bean
http://www.pierceye.com/news/441562/

相关文章:

  • 机房建设 网站建设工程标准在线网站
  • 网站建设是属于软件开发费吗Wordpress有用么
  • 上海 网站备案商务网站规划与建设课程设计
  • 网站 首页 栏目 内容网业设计
  • 用vs与dw做网站什么做电子书下载网站好
  • 网站建设发布教程网页设计师收费标准
  • 徐州哪里做网站好农林网站建设公司
  • 可以做直播卖产品的网站专业产品画册设计公司
  • wp网站开发个人小程序开发流程
  • 网站制作报价大约重庆招聘网站建设
  • 网站开发 资质网站开发价格评估
  • 泰州网站关键词优化谷歌建站
  • 门户网站风格企业网站建设的成本
  • 一站式外贸综合服务平台社区网站推广方案
  • 宁波网络公司网站建设项目怎么破解别人做的付费网站
  • 做创意小视频的网站centos 7.4 wordpress
  • 免费建立单位的网站适合个人做的跨境电商
  • 沈阳军成网站建设17网站一起做网店
  • 哪些cms做同城网站比较好上海建设工程协会网站
  • 潍坊企业自助建站系统seo博客网站
  • 做啤酒最全的网站鱼台县建设局网站
  • 网站开发转行进入衍生领域wordpress qaengine
  • 公司内部网站模板快速建网站的软件
  • 被骗去国外做网站网站推广网站的运营推广方案
  • 北京汽车业务网站开发公司桂林旅游攻略必去景点
  • 个人网站开发是学什么语言wordpress打造cms
  • 网站建设与维护的重要性岳阳建设厅网站
  • 惠州网站开发公司wordpress简单
  • 外贸网站 免费模板 使用 zencart如何购买域名和备案
  • 网站建设联系我们设计网站无锡