`
南山忍者
  • 浏览: 86790 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

系统初步认识

 
阅读更多

 

1,对于web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
  
	<display-name>广告管理系统</display-name>
	
	<!-- 在web.xml中 首先配置的是对spring进行配置 -->
	
	<!-- Spring核心配置文件 -->
	<context-param>
    	<param-name>contextConfigLocation</param-name>
    	<param-value>/WEB-INF/spring-context/applicationContext.xml</param-value>
  	</context-param>
  	
	<!--由Sprng载入的Log4j配置文件位置-->
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>/WEB-INF/classes/log4j.properties</param-value>
	</context-param>
	
	
	<!--Spring刷新Log4j配置文件的间隔,单位为millisecond-->
 	<context-param>
  		<param-name>log4jRefreshInterval</param-name>
  		<param-value>60000</param-value>
 	</context-param>
 	
 	
  	<!--如果不定义webAppRootKey参数,那么webAppRootKey就是缺省的"webapp.root"-->
	<context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>admanager.root</param-value>
    </context-param>
	
	
	<!-- 这个是自己写的一个过滤器,将所有的编码全部统一到utf-8编码格式 -->
	<filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>com.kemp.servlet.SetCharacterEncodingFilter</filter-class>
        <!-- 变量设置,将SetCharacterEncodingFilter类中的变量进行设置,系统将自动将变量赋值 -->
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
    </filter>
    
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<filter>
    	<filter-name>OpenSessionInViewFilter</filter-name>
    	<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  	</filter>
  	<filter-mapping>
    	<filter-name>OpenSessionInViewFilter</filter-name>
    	<url-pattern>/*</url-pattern>
  	</filter-mapping>
  	
  	
  	
  	<!-- 配置Struts2核心控制器 -->
	<filter>
		<!-- 配置filter名字 -->
        <filter-name>struts2</filter-name>
        <!-- 配置filter实现类 -->
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <!-- 配置filter拦截的URL -->
    <filter-mapping>
    <!-- 配置Struts2核心控制器拦截所有用户请求 -->
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
	<filter>
  		<filter-name>struts-cleanup</filter-name>
  		<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
  	</filter>
  	<!-- 配置filter拦截的URL -->
  	<filter-mapping>
  	<!-- 拦载所有用户请求 -->
    	<filter-name>struts-cleanup</filter-name>
    	<url-pattern>/*</url-pattern>
  	</filter-mapping>
    
		
	
	<!-- 用于初始化Spring的Listener,这个监听器主要是用来自动加载applicationContext.xml的 -->
  	<listener>
    	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  	</listener>
	<!-- 设置Spring的log4j监听器 -->
  	<listener>
    	<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  	</listener>

 
   	<welcome-file-list>
    	<welcome-file>index.jsp</welcome-file>
  	</welcome-file-list>
  	<session-config>  
        <session-timeout>10</session-timeout>  
 	</session-config>   
    <!-- 
    一般来说,这个配置不是必需的,因为标签库已经被包括在struts2-core-2.0.11.jar中了。
    如果您真的需要在web.xml中配置标签库,可以把/META-INF/taglib.tld文件复制到您的应用程序的WEB-INF目录下,
    命名为struts-tags.tld 
    -->
 	<jsp-config>
    	<taglib>
      		<taglib-uri>/WEB-INF/struts-tags.tld</taglib-uri>
     		<taglib-location>/WEB-INF/struts-tags.tld</taglib-location>
    	</taglib>
  	</jsp-config>
	
</web-app>

 

2  因为在系统中应用了spring,所以spring的applicationContext.xml组要的好好的研究一下,即依赖注入之间的关系。

 

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
 
<beans>

	<!-- 引入init.properties中属性 -->
	<bean id="placeholderConfig"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location">
			<value>classpath:init.properties</value>
		</property>
	</bean>
	
	
	<!-- 配置数据源,连接池使用c3p0 -->
	<bean id="dataSource"
			class="com.mchange.v2.c3p0.ComboPooledDataSource"
			destroy-method="close" dependency-check="none">
		<property name="driverClass">
			<value>${datasource.driverClassName}</value>
		</property>
		<property name="jdbcUrl">
			<value>${datasource.url}</value>
		</property>
		<property name="user">
			<value>${datasource.username}</value>
		</property>
		<property name="password">
			<value>${datasource.password}</value>
		</property>
		<property name="acquireIncrement">
			<value>${c3p0.acquireIncrement}</value>
		</property>
		<property name="initialPoolSize">
			<value>${c3p0.initialPoolSize}</value>
		</property>
		<property name="minPoolSize">
			<value>${c3p0.minPoolSize}</value>
		</property>
		<property name="maxPoolSize">
			<value>${c3p0.maxPoolSize}</value>
		</property>
		<property name="maxIdleTime">
			<value>${c3p0.maxIdleTime}</value>
		</property>
		<property name="idleConnectionTestPeriod">
			<value>${c3p0.idleConnectionTestPeriod}</value>
		</property>
		<property name="maxStatements">
			<value>${c3p0.maxStatements}</value>
		</property>
		<property name="numHelperThreads">
			<value>${c3p0.numHelperThreads}</value>
		</property>
	</bean>
	
	
	<!-- 配置Hibernate中的SessionFactory -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<!-- 引入数据源 -->
		<property name="dataSource">
			<ref local="dataSource" />
		</property>
		
		
		<!-- 配置Hibernate对应的映射资源 -->
		<property name="mappingResources">
			<list>
			<!-- 
			<value>com/kemp/video/dept/Dept.hbm.xml</value>
			 -->
				<value>com/kemp/video/dept/Dept.hbm.xml</value>
				<value>com/kemp/video/role/Role.hbm.xml</value>
				<value>com/kemp/video/users/Users.hbm.xml</value>
				<value>com/kemp/video/dictionary/Dictionary.hbm.xml</value>
				<value>com/kemp/video/subdictionary/SubDictionary.hbm.xml</value>
				<value>com/kemp/video/hotel/Hotel.hbm.xml</value>
				<value>com/kemp/video/advertiser/Advertiser.hbm.xml</value>
				<value>com/kemp/video/advertisement/Advertisment.hbm.xml</value>
				<value>com/kemp/video/adbanner/AdBanner.hbm.xml</value>
			</list>
		</property>
		
		
		
		<!-- 配置Hibernate的属性,包括断言,show_sql等 -->
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					${hibernate.dialect}
				</prop>
				<prop key="hibernate.show_sql">
					${hibernate.show_sql}
				</prop>
				<prop key="hibernate.jdbc.fetch_size">
					${hibernate.jdbc.fetch_size}
				</prop>
				<prop key="hibernate.jdbc.batch_size">
					${hibernate.jdbc.batch_size}
				</prop>
				<prop key="hibernate.connection.release_mode">
					${hibernate.connection.release_mode}
				</prop>
			</props>
		</property>
	</bean>
	
	<!-- 配置事务管理器bean  -->
	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
	<!-- 为事务管理器注入sessionFactory" -->
	  <property name="sessionFactory">
	    <ref bean="sessionFactory"/>
	  </property>
	</bean>
	<!-- 事务控制代理抽象定义  -->
	<bean id="transactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
	<!-- 为事务代理bean注入一个事物管理器 -->
	  <property name="transactionManager">
        <ref bean="transactionManager"/>	  
	  </property>
	  <property name="transactionAttributes">
	  <!-- 定义事务传播属性 -->
	    <props>
	      <prop key="add*">PROPAGATION_REQUIRED</prop>
	      <prop key="delete*">PROPAGATION_REQUIRED</prop>
	      <prop key="update*">PROPAGATION_REQUIRED</prop>
	      <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
	      <prop key="release*">PROPAGATION_REQUIRED</prop>
	      <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
	    </props>
	  </property>
	</bean>
	
	<!-- DAO -->
	<bean id="deptdao" class="com.kemp.video.dept.DeptDao">
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
		</property>
	</bean>
	<bean id="roledao" class="com.kemp.video.role.RoleDao">
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
		</property>
	</bean>
	<bean id="usersdao" class="com.kemp.video.users.UsersDao">
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
		</property>
	</bean>
	<bean id="dictionaryDao" class="com.kemp.video.dictionary.DictionaryDao">
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
		</property>
	</bean>
	<bean id="subDictionaryDao" class="com.kemp.video.subdictionary.SubDictionaryDao">
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
		</property>
	</bean>
	<bean id="hotelDao" class="com.kemp.video.hotel.HotelDao">
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
		</property>
	</bean>
	<!-- 配置系统的DAO组件 -->
	<bean id="advertiserDao" class="com.kemp.video.advertiser.AdvertiserDao">
		<!-- 依赖注入SessionFactory引用 -->
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
		</property>
	</bean>
	<bean id="advertismentdao" class="com.kemp.video.advertisement.AdvertismentDao">
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
		</property>
	</bean>
	<bean id="adBannerDao" class="com.kemp.video.adbanner.AdBannerDao">
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
		</property>
	</bean>
	
	<!-- Target -->
	<bean id="deptTarget" class="com.kemp.video.dept.DeptService">
		<property name="deptdao">
			<ref bean="deptdao"/>
		</property>
	</bean>
	<bean id="roleTarget" class="com.kemp.video.role.RoleService">
		<property name="roledao">
			<ref bean="roledao"/>
		</property>
	</bean>
	<bean id="usersTarget" class="com.kemp.video.users.UsersService">
		<property name="usersdao">
			<ref bean="usersdao"/>
		</property>
	</bean>
	<bean id="dictionaryTarget" class="com.kemp.video.dictionary.DictionaryService">
		<property name="dictionaryDao">
			<ref bean="dictionaryDao"/>
		</property>
	</bean>
	<bean id="subDictionaryTarget" class="com.kemp.video.subdictionary.SubDictionaryService">
		<property name="subDictionaryDao">
			<ref bean="subDictionaryDao"/>
		</property>
	</bean>
	<bean id="hotelTarget" class="com.kemp.video.hotel.HotelService">
		<property name="hotelDao">
			<ref bean="hotelDao"/>
		</property>
	</bean>
	
	
	<!-- 配置业务逻辑服务类 -->
	<bean id="advertiserTarget" class="com.kemp.video.advertiser.AdvertiserService">
		<!-- 依赖注入DAO引用 -->
		<property name="advertiserDao">
			<ref bean="advertiserDao"/>
		</property>
	</bean>
	<bean id="advertismenterTarget" class="com.kemp.video.advertisement.AdvertismentService">
		<property name="advertismentdao">
			<ref bean="advertismentdao"/>
		</property>
		<property name="adBannerDao">
			<ref bean="adBannerDao"/>
		</property>
	</bean>
	<bean id="adBannerTarget" class="com.kemp.video.adbanner.AdBannerService">
		<property name="adBannerDao">
			<ref bean="adBannerDao"/>
		</property>
		<property name="hotelDao">
			<ref bean="hotelDao"/>
		</property>
	</bean>
	
	
	
	<!-- Services -->
    <bean id="deptservice" parent="transactionProxy">
      <property name="target">
        <ref bean="deptTarget"/>
      </property>
    </bean>
    <bean id="roleservice" parent="transactionProxy">
      <property name="target">
        <ref bean="roleTarget"/>
      </property>
    </bean>
    <bean id="usersservice" parent="transactionProxy">
      <property name="target">
        <ref bean="usersTarget"/>
      </property>
    </bean>
    <bean id="dictionaryService" parent="transactionProxy">
      <property name="target">
        <ref bean="dictionaryTarget"/>
      </property>
    </bean>
	<bean id="subDictionaryService" parent="transactionProxy">
      <property name="target">
        <ref bean="subDictionaryTarget"/>
      </property>
    </bean>
    <bean id="hotelService" parent="transactionProxy">
		<property name="target">
			<ref bean="hotelTarget"/>
		</property>
	</bean>
	
	
	<!-- 继承抽象事务代理 -->
	<bean id="advertiserService" parent="transactionProxy">
		<!-- 依赖注入业务逻辑组件引用 -->
		<property name="target">
			<ref bean="advertiserTarget"/>
		</property>
	</bean>
	<bean id="advertismentservice" parent="transactionProxy">
		<property name="target">
			<ref bean="advertismenterTarget"/>
		</property>
	</bean>
	<bean id="adBannerService" parent="transactionProxy">
		<property name="target">
			<ref bean="adBannerTarget"/>
		</property>
	</bean>
	
	<!-- view -->
	<bean id="deptAction" class="com.kemp.web.actions.DeptAction" singleton="false">
		<property name="deptservice">
			<ref bean="deptservice"/>
		</property>
		<property name="usersservice">
			<ref bean="usersservice"/>
		</property>
	</bean>
	<bean id="roleAction" class="com.kemp.web.actions.RoleAction" singleton="false">
		<property name="roleservice">
			<ref bean="roleservice"/>
		</property>
		<property name="usersservice">
			<ref bean="usersservice"/>
		</property>
	</bean>
	<bean id="usersAction" class="com.kemp.web.actions.UsersAction" singleton="false">
		<property name="usersservice">
			<ref bean="usersservice"/>
		</property>
		<property name="deptservice">
			<ref bean="deptservice"/>
		</property>
		<property name="roleservice">
			<ref bean="roleservice"/>
		</property>
	</bean>
	<bean id="dictionaryAction" class="com.kemp.web.actions.DictionaryAction" singleton="false">
		<property name="dictionaryService">
			<ref bean="dictionaryService"/>
		</property>
	</bean> 
	<bean id="subDictionaryAction" class="com.kemp.web.actions.SubDictionaryAction" singleton="false">
		<property name="subDictionaryService">
			<ref bean="subDictionaryService"/>
		</property>
		<property name="dictionaryService">
			<ref bean="dictionaryService"/>
		</property>
	</bean>
	<bean id="hotelAction" class="com.kemp.web.actions.HotelAction" singleton="false">
		<property name="hotelService">
			<ref bean="hotelService"/>
		</property>
		<property name="adBannerService">
			<ref bean="adBannerService"/>
		</property>
	</bean>
	<!-- 配置系统的Action组件 -->
	<bean id="advertiserAction" class="com.kemp.web.actions.AdvertiserAction" singleton="false">
		<!-- 依赖注入业务逻辑组件引用 -->
		<property name="advertiserService">
			<ref bean="advertiserService"/>
		</property>
		<property name="advertismentservice">
			<ref bean="advertismentservice"/>
		</property>
	</bean>
	<bean id="AdvertismentAction" class="com.kemp.web.actions.AdvertismentAction" singleton="false">
		<property name="advertismentservice">
			<ref bean="advertismentservice"/>
		</property>
		<property name="advertiserService">
			<ref bean="advertiserService"/>
		</property>
		<property name="subDictionaryService">
			<ref bean="subDictionaryService"/>
		</property>
		<property name="hotelService">
			<ref bean="hotelService"/>
		</property>
		<property name="adBannerService">
			<ref bean="adBannerService"/>
		</property>
	</bean>
	
	<!-- 将struts的事务交给spring,同时通过依赖注入,将三个service依次注入到Action中 -->
	<bean id="adBannerAction" class="com.kemp.web.actions.AdbannerAction" singleton="false">
		<property name="adBannerService">
			<ref bean="adBannerService"/>
		</property>
		<property name="subDictionaryService">
			<ref bean="subDictionaryService"/>
		</property>
		<property name="hotelService">
			<ref bean="hotelService"/>
		</property>
		<property name="advertismentservice">
			<ref bean="advertismentservice"/>
		</property>
	</bean>
</beans>
 

 

在上面的applicationContext.xml 的配置文件中,特别是注意一下之间的依赖注入的关系。

 

题目说的是对系统的一些看法,但是却罗列了applicationContext.xml和web.xml。

这次说一下DAO吧

 

1)系统中DAO的设计

DAO大家都明白,这个是最底层(当然是相对的最底层~~),是直接与数据库打交道的,包括对数据库的增删修等操作。

很多的时候,我们是需要写一个操作基类(BaseDAO),然后所有的其他的类继承这个基类进行操作,如果基类的方法不够,则可以进行相应的扩展(即再写一下自己的方法,完善对应模块的基类)

在这儿写一下一个自己不熟悉的一种基类的方式(或者说是一种思路)

 

1)首先,先写一个基类的接口

public interface IGenericDAO<T, PK extends Serializable> {
	public abstract void save(T entity);
	public abstract void update(T entity);
	public abstract void delete(T entity);
	public abstract void deleteById(PK id);
	public void deleteAll(List<T> list) ;
	public abstract void saveOrUpdate(T entity);

	public abstract T findById(PK id) ;
	public List<T> findByExample(T exampleInstance) ;
	public List<T> findByExample(T exampleInstance, String[] excludeProperty) ;
	public List<T> findByProperty(String propertyName,final Object value) ;
	public List<T> findByProperty(String propertyName,final Object value, String orderBy, boolean isAsc) ;
	public List<T> findByTimeAndOther(String timeProperty,String sTime,String eTime,String [] propertyName,Object... values) ;
	public List<T> findByPropertys(String[] propertyNames, final Object[] values, int [] rowStartIdxAndCount, String orderType,String connType,boolean isPrecise) ;
	public abstract List<T> findAll() ;
	public  List<T> findAll( String orderBy, boolean isAsc) ;
	public List<T> findByTime(String propertyName,final String startValue,final String endValue);
	public List<T> findByTime(String propertyName, final String startValue,
			final String endValue ,String orderProperty, boolean isDesc) ;
	public  List<T> findByMax(String propertyName);
	public List<T> findByCriteria(Criterion... criterion) ;
	public List<T> findByCriteria(String orderBy, boolean isAsc,Criterion... criterion) ;
	public List<T> find(String hql, Object... values) ;
	public PaginationSupport findPageByPropertys(String[] propertyNames, final Object[] values, int [] rowStartIdxAndCount, String orderType,String connType,boolean isPrecise,int pageIndexCount) ;
	public void updateByHql(String hqlUpdate);
	
	public int searchCountsByHql(String hql, Object... values);
	
	public List<T> getEntityBySql(String sql) ;
	
	public List<T> searchBySql(String sql);
	public void deleteOrUpdateBySql(String sql);
	public int searchCountsBySql(String sql);
	public int findPageSize(String sql);
	public List<T> findBysqls(String sql, int[] rowStartIdxAndCount) ;
	public List<T> getFixedResultsBySql(String sql,int[] indexAndCount);

	public int updateByProcedure(String tableName, String value,String oldValue, String startTime,String endTime);
	
	public List<T> getLatestResult(String propertyName,final Object value, String orderBy, boolean isAsc,int[] indexAndCount);
}

 

2)写完这个基类的接口,则必须要写相应的实现类

 

public class GenericDAO<T, PK extends Serializable> extends HibernateDaoSupport
		implements IGenericDAO<T, PK> {
	private Class<T> entityClass;

	private String className;

	protected QueryTool queryTool;
	protected CalculateTool calculateTool;

	// private static final Logger logger = Logger.getAnonymousLogger() ;
	@SuppressWarnings("unchecked")
	public GenericDAO() {
		// 通过范型反射,取得子类中定义的entityClass.
		this.entityClass = (Class<T>) ((ParameterizedType) getClass()
				.getGenericSuperclass()).getActualTypeArguments()[0];
		className = entityClass.getSimpleName();
		queryTool = new QueryTool(entityClass, className);
		calculateTool = new CalculateTool(entityClass, className);
	}

	public GenericDAO(Class<T> class1, SessionFactory sessionFactory) {
		this.entityClass = class1;
		className = entityClass.getSimpleName();
		this.setSessionFactory(sessionFactory);
		queryTool = new QueryTool(entityClass, className);
		calculateTool = new CalculateTool(entityClass, className);
	}


	public void save(T entity) throws DataAccessException {
		super.getHibernateTemplate().save(entity);
	}


	public void update(T entity) throws DataAccessException {
		Assert.notNull(entity);
		super.getHibernateTemplate().update(entity);
	}


	public void saveOrUpdate(T entity) throws DataAccessException {
		Assert.notNull(entity);
		super.getHibernateTemplate().saveOrUpdate(entity);
	}


	public void delete(T entity) throws DataAccessException {
		Assert.notNull(entity);
		super.getHibernateTemplate().delete(entity);
		getHibernateTemplate().flush();
	}

	
	@SuppressWarnings("unchecked")
	public void deleteById(PK id) throws DataAccessException {
		super.getHibernateTemplate().delete(
				getHibernateTemplate().load(entityClass, id));
	}


	@SuppressWarnings("unchecked")
	public void deleteAll(List<T> list) throws DataAccessException {
		super.getHibernateTemplate().deleteAll(list);
	}
 

(当然还有很多方法的实现,但是在这儿就不写了)

 

这样一个基类就写完了,以后要做的就是继承它了,别忘了用接口哟~~~

 

 

分享到:
评论

相关推荐

    含热电联供的智能楼宇群协同能量管理策略:基于多主体协同与需求响应的热电混合运行策略研究,“基于Stackelberg博弈与需求响应的智能楼宇群热电协同能量管理策略”,MATLAB代码:含热电联供的智能

    含热电联供的智能楼宇群协同能量管理策略:基于多主体协同与需求响应的热电混合运行策略研究,“基于Stackelberg博弈与需求响应的智能楼宇群热电协同能量管理策略”,MATLAB代码:含热电联供的智能楼宇群协同能量管理 关键词:楼宇能量管理系统;热电联供系统;Stackelberg博弈;需求响应 参考文档:《含热电联供的智能楼宇群协同能量管理》华北电力硕士lunwen 仿真平台:MATLAB 主要内容:本文提出了一种计及热电耦合需求响应的智能楼宇群的多主体协同能量管理策略。 传统热电联供系统采取单一的“以电定热”或“以热定电”运行策略,在实际运用中将无可避免地造成能源的浪费。 针对这一现状,本文采取“热电混合运行”策略对联供系统进行调控,在该运行策略下,运营商可以结合不同时段的价格信息、负荷水平等因素灵活采取使自身收益最大化的运行策略。 在热电协同能量管理层面,以楼宇群运营商的收益以及用户的效益最大化为目标,提出了智能楼宇群内部的优化定价策略,运营商在系统中负责向用户供电与供热,并自主制定电与热价格引导用户进行需求响应;其次,用户具有可平移电负荷以及可削减热负荷,可根据当前的价格信息自

    随机规划下的虚拟电厂与微网双不确定性优化调度模型研究:基于MATLAB与CPLEX的仿真平台实现,计及双重不确定性的虚拟电厂微网日前随机优化调度策略-基于MATLAB与CPLEX平台的研究,MATL

    随机规划下的虚拟电厂与微网双不确定性优化调度模型研究:基于MATLAB与CPLEX的仿真平台实现,计及双重不确定性的虚拟电厂微网日前随机优化调度策略——基于MATLAB与CPLEX平台的研究,MATLAB代码:计及源-荷双重不确定性的电厂 微网日前随机优化调度 关键词:电厂 微网 随机优化 随机调度 源-荷双重不确定性 电厂调度 参考文档:《Virtual power plant mid-term dispatch optimization》参考其燃气轮机、以及储能部分模型,另外随机优化算法也是和该文档一致; 仿真平台:MATLAB+CPLEX 主要内容:代码主要做的是一个电厂或者微网单元的日前优化调度模型,考虑了光伏出力和负荷功率的双重不确定性,采用随机规划法处理不确定性变量,构建了电厂随机优化调度模型。 具体来看,首先是基于蒙特卡洛算法,对预测的光伏以及负荷曲线进行场景生成,然后基于快概率距离快速消除法进行削减,直至削减至5个场景,然后采用随机调度的方法,对多场景下的电厂调度策略进行优化,程序实现效果良好,纯程序为本人亲自所写,一行一注释, ,关键词:虚拟电厂; 微网; 随

    rsyslog-mmaudit-8.24.0-57.el7-9.3.x64-86.rpm.tar.gz

    1、文件内容:rsyslog-mmaudit-8.24.0-57.el7_9.3.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/rsyslog-mmaudit-8.24.0-57.el7_9.3.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊

    基于Web的增材制造预处理平台的设计与实现.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用,资源为网络商品(电子资料类)基于网络商品和电子资料商品的性质和特征不支持退款,质量优质,放心下载使用

    博客系统完整开发流程(上)

    前端博客系统代码

    18考试真题最近的t67.txt

    18考试真题最近的t67.txt

    Javaweb期中作业会议管理系统,SSM+JSP.zip(课设&实训&大作业&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用,资源为网络商品(电子资料类)基于网络商品和电子资料商品的性质和特征不支持退款,质量优质,放心下载使用

    基于Plecs的模块化多电平换流器设计:PMW调制下的小输出电压纹波半桥子模块实现,基于Plecs实现的模块化多电平半桥换流器,采用PWM调制方式实现低电压纹波输出,用plecs实现的模块化多电平流器

    基于Plecs的模块化多电平换流器设计:PMW调制下的小输出电压纹波半桥子模块实现,基于Plecs实现的模块化多电平半桥换流器,采用PWM调制方式实现低电压纹波输出,用plecs实现的模块化多电平流器,调制方式是PMW,输出电压纹波小,子模块是半桥 ,关键词提取结果:plecs;模块化多电平换流器;PWM调制;输出电压纹波小;半桥子模块;,《Plecs模拟模块化半桥式PWM多电平换流器》——输出低纹波电压的研究与应用

    最新更新!!!上市公司-股票流动性指标(2000-2023年)

    ## 01、数据简介 股票流动性是指股票在市场上被买卖的容易程度和速度,即投资者能够在不造成显著价格变动的情况下迅速买卖股票的能力。 Amihud指标结果这是一个衡量股票流动性的指标,为股票在一段时间的收益率与交易额的比值的负对数值。如果股票交易量的变动会带来股价的剧烈波动(暴涨暴跌),则Amihud指标越大,股票流动性越差;反之,如果交易量的变化对股价变化的影响越小,则说明股票的流动性较好。由于这是一个计算结果,因此需要根据实际的股票交易数据来计算。 数据名称:上市公司-股票流动性指标 数据年份:2000-2023年 ## 02、相关数据 stkcd、年份、证券代码、Amihud指标结果、交易天数。

    Simulink在DSP2833x开发板上的电机控制与通讯模型自动生成代码教程,Simulink在DSP2833x开发板上的电机控制与通讯模型自动生成代码教程,模型开发域控制Simulik自动生成代码

    Simulink在DSP2833x开发板上的电机控制与通讯模型自动生成代码教程,Simulink在DSP2833x开发板上的电机控制与通讯模型自动生成代码教程,模型开发域控制Simulik自动生成代码 DSP2833x基于模型的电机控制设计 MATLAb Simulik自动生成代码 基于dsp2833x 底层驱动库的自动代码生成 MATLAB Simulink仿真及代码生成技术入门教程 内容为Simulink在嵌入式领域的应用,具体是Simulink在DSP28335这块开发版上的应用模型:包括直流电机、PMSM、步进电机控制模型,还有常见的LED、串口、CAN等通讯相关Simulink模型,模型都有相关解释文件。 ,核心关键词: Simulink应用; DSP2833x开发版; 电机控制模型; 直流电机模型; PMSM模型; 步进电机模型; LED模型; 串口模型; CAN通讯模型; 自动代码生成; 底层驱动库。,MATLAB Simulink在DSP2833x上的嵌入式开发:自动生成代码的模型应用与实践教程

    19考试真题最近的t24.txt

    19考试真题最近的t24.txt

    C51/STM32仿真软件,主要通过三极管、电阻、电容、单片机等等元器件进行搭载电路,软件程序调试的过程,完成项目功能

    protues8.17安装包,无须积分,即可下载

    计及电动汽车灵活性的微网三阶段多时间尺度协调调度模型:优化经济调度、实时调整与减少功率波动策略,计及电动汽车灵活性的微网多时间尺度经济协调调度模型,计及电动汽车灵活性的微网多时间尺度协调调度模型 摘要

    计及电动汽车灵活性的微网三阶段多时间尺度协调调度模型:优化经济调度、实时调整与减少功率波动策略,计及电动汽车灵活性的微网多时间尺度经济协调调度模型,计及电动汽车灵活性的微网多时间尺度协调调度模型 摘要:构建了含有电动汽车参与的微网 电厂多时间尺度协调优化模型,其中包括日前-日内-实时三阶段,日前阶段由于风光出力具有不确定性,结合风光预测值作初步经济调度;日内阶段,风光出力观测的更加准确,通过调节储能、需求响应等单元对调度方案作进一步调整,避免遭受高额的不平衡惩罚;实时阶段,风光出力的预测结果更准确,为了进一步降低微网与上级电网并网功率的波动性,充分利用电动汽车的灵活性,调度电动汽车的充放电以减少功率波动,兼顾调度的安全性与经济性。 ,微网协调调度模型; 电动汽车灵活性; 多时间尺度; 风光出力; 储能需求响应; 实时调整; 经济性,电动汽车灵活性的微网多尺度协调调度模型研究

    基于MPC的电动汽车分布式协同自适应巡航控制:上下分层控制与仿真结果展示,基于MPC的电动汽车协同自适应巡航控制:上下分层控制与仿真结果展示,基于MPC的分布式电动汽车协同自适应巡航控制,采用上下分层

    基于MPC的电动汽车分布式协同自适应巡航控制:上下分层控制与仿真结果展示,基于MPC的电动汽车协同自适应巡航控制:上下分层控制与仿真结果展示,基于MPC的分布式电动汽车协同自适应巡航控制,采用上下分层控制方式,上层控制器采用模型预测控制mpc方式,产生期望的加速度,下层根据期望的加速度分配扭矩;仿真结果良好,能够实现前车在加减速情况下,规划期望的跟车距离,产生期望的加速度进行自适应巡航控制。 ,关键词:MPC(模型预测控制); 分布式电动汽车; 协同自适应巡航控制; 上下分层控制方式; 期望加速度; 扭矩分配; 仿真结果良好; 前车加减速; 跟车距离。,基于MPC的分层控制电动汽车自适应巡航系统,仿真实现前车加减速跟车距离自适应

    MATLAB代码实现电-气-热综合能源系统耦合优化调度模型:精细注释与实用模块子程序,MATLAB实现电-气-热综合能源系统优化调度的精细化建模与求解策略利用电网、热网与气网耦合交互的复杂系统特性进行

    MATLAB代码实现电-气-热综合能源系统耦合优化调度模型:精细注释与实用模块子程序,MATLAB实现电-气-热综合能源系统优化调度的精细化建模与求解策略利用电网、热网与气网耦合交互的复杂系统特性进行深度调度分析,MATLAB代码:电-气-热综合能源系统耦合优化调度 关键词:综合能源系统 优化调度 电气热耦合 参考文档:自编文档,非常细致详细,可联系我查阅 仿真平台:MATLAB YALMIP+cplex gurobi 主要内容:代码主要做的是一个考虑电网、热网以及气网耦合调度的综合能源系统优化调度模型,考虑了电网与气网,电网与热网的耦合,算例系统中,电网部分为10机39节点的综合能源系统,气网部分为比利时20节点的配气网络,潮流部分电网是用了直流潮流,气网部分也进行了线性化的操作处理,代码质量非常高,保姆级的注释以及人性化的模块子程序,所有数据均有可靠来源 ,关键词:综合能源系统; 优化调度; 电气热耦合; 10机39节点; 比利时20节点; 直流潮流; 线性化处理; MATLAB YALMIP; cplex gurobi。,MATLAB代码:电-气-热综合能源系统耦合优化调度

    元器件基础知识文档(适合初学者学习)

    报告电子元器件手册目录,常见电子元器件的参考资料以及70种电子元器件封装等等,非常适合初学者进行学习和掌握。希望大家都能够在电子领域进行深耕。

    19考试真题最近的t63.txt

    19考试真题最近的t63.txt

    基于MATLAB Simulink开发的FCU与PEMFC燃料电池系统模型开发:空压机、电堆等模块仿真与控制策略开发,基于MATLAB Simulink开发的PEMFC燃料电池系统模型及控制策略仿真开

    基于MATLAB Simulink开发的FCU与PEMFC燃料电池系统模型开发:空压机、电堆等模块仿真与控制策略开发,基于MATLAB Simulink开发的PEMFC燃料电池系统模型及控制策略仿真开发资料,fcu,燃料电池控制器,质子交膜燃料电池系统模型(PEMFC),基于MATLAB simulink开发,主要部分有空压机模型,供气系统模型(阴极和阳极),背压阀模型,电堆模型等。 可进行控制策略等仿真开发工作。 提供相关文档学习建模资料等 ,fcu; 燃料电池控制器; PEMFC; MATLAB simulink; 空压机模型; 供气系统模型; 背压阀模型; 电堆模型; 控制策略仿真; 文档学习建模资料,基于MATLAB Simulink的PEMFC燃料电池控制器开发:模型构建与控制策略仿真

    上门预约服务小程序v4.10.9+前端.zip

    上门预约服务小程序v4.10.9+前端 文章列表单图时,图标统一左侧对齐 文章内增加视频位置,显示在文章顶部 文章内底部导航增加首页、分享、自定义按钮,可跳转内部页面、其他小程序、业务域名内的H5页面,方便宣传使用

    19考试真题最近的t41.txt

    19考试真题最近的t41.txt

Global site tag (gtag.js) - Google Analytics