coleção resposta curta MyBatis, Primavera, SpringMVC, quadro SSM

A primeira pergunta: MyBatis no # {...} e {...} diferença $
Resposta:
# {...}: ""? "" Parâmetro local fará uso de espaços reservados ao executar valor SQL será substituído
$ {...}: diretamente para o valor do parâmetro como parte da implementação do SQL para injeção de SQL pode ser →
como escolher:
. . . : quando Inserir entrar de ginseng número é Faça é S Q eu Reter linha de A departamento dividir de quando 使 {...}: Quando parâmetros de tempo inserido como parte do uso must execução de SQL {...}
# {...}: é o momento em que o parâmetro passado para interagir com o banco de dados, {...} uso #
facilmente determinado: o parâmetro passado em SQL se aspas simples. pode ser usado entre aspas simples {...} #, nem aspas, usando $ {...}

A segunda pergunta: MyBatis desenvolvimento de interface de uso mapeador, você precisa seguir alguns dos constrangimentos
responder:
o valor do arquivo de mapeamento 1.mapper namespace, deve ser igual à totalmente qualificado nome mapeador de interface
ID de Sql de arquivo de mapeamento 2.mapper, deve ser igual método de interface nome mapeador
3.mapper arquivo de mapeamento Sql com o mesmo tipo devem paramterType método correspondente.
o valor de retorno eo valor 4. o método deve ser resultType consistente ou resultMap

Terceira pergunta: comandos comuns Maven, e seus significados
resposta:
diretório raiz shift + direita para abrir uma janela de comando
mvn compilação compilador
mvn limpo claro bytecode
mvn compilação limpa para limpar o código de bytes e, em seguida, compilação
teste mvn teste de execução
pacote mvn no projeto atual empacotar o .war .jar
mvn limpo site ajudar a construir a documentação do projeto
mvn instalar o pacote rotulado item de instalado do repositório maven

Quarta questão: O valor do escopo na gestão de dependências Maven O quê? E qual é o significado de cada valor?
Resposta:
1, a compilação (gama de compilação)
a compilação é o intervalo padrão, se não for fornecido um intervalo, esse intervalo é dependente do escopo da compilação. Compilando gama depende de todos disponível no classpath, enquanto eles serão empacotados.
2, fornecida (fornecida gama)
dependência fornecido quando utilizado apenas em um recipiente provido JDK ou a dependência. Por exemplo, se você desenvolver uma aplicação web, você pode precisar compilar disponível na API classpath Servlet para compilar um servlet, mas você não deseja incluir o API Servlet no WAR embalados; o JAR API Servlet do seu servidor de aplicativos ou servlet container disponível. Ele tem proporcionado uma gama de dependência pode ser utilizado na elaboração de caminho de classe (não de tempo de execução). Eles não são transitivas, não vai ser embalado.
3, de tempo de execução (gama de marcha)
sistemas em tempo de execução para a execução de dependência e de teste necessita, mas não precisa de pelo tempo de compilação. Por exemplo, você pode precisar apenas de JDBC JAR API em tempo de compilação, mas apenas quando ele precisa para executar o JDBC
implementação do controlador.
4, o teste (intervalo de teste)
o intervalo de teste depende, em geral, não é necessário compilar e tempo de execução, eles só estão disponíveis na compilação de teste e fase de operação de teste.
5, o sistema (em todo o sistema)
gama depende sistema semelhante fornecido, mas você deve fornecer explicitamente um caminho para o arquivo JAR do sistema local. Isto é feito para permitir que o compilador baseado em objetos locais, e esses objetos fazem parte da biblioteca do sistema. Este componente deve estar sempre disponível, Maven não ir procurá-lo no armazém. Se depender de um conjunto intervalo para system-wide, você deve fornecer um elemento SystemPath. Note-se que esta faixa não é recomendada (você deve sempre tentar confiar em referências de repositório público ou costume Maven).

A quinta questão: Introdução MyBatis mecanismo de cache de
resposta:
na memória para abrir uma área usada para armazenar dados, os dados são armazenados na memória chamado de cache
Objetivo: melhorar a eficiência das consultas
principais: como a velocidade da CPU de memória maior do que os mesmos interações com o disco interativo a velocidade da
essência: o Mapa
do cache MyBatis em cache e cache secundário
de cache:
cada vez que você abrir uma sqlsession objetos quando, na sqlsession será aberto em um espaço como um cache para armazenar dados
tem algumas limitações: apenas um sqlsession âmbito interno, mas sqlsession ciclo de vida relativamente curto. cache de nível para melhorar o desempenho é muito limitado
realmente para ser usado para melhorar o desempenho de cache secundário
cache secundário:
1, que tipo de dados para caber no cache?
dados, não dados com freqüência modificados, gravar dados de leitura muito maiores do que solicitado com frequência
2, a taxa de acerto de cache é
a quantidade de dados a quantidade de dados recuperados do cache / Total dados adquiridos
3, o tempo máximo de sobrevivência
de dados pode ser presente na memória o mais longo
cache e cache secundário podem coexistir
cache é nível sqlsession
dois cache é nível namespace (o arquivo de mapeamento, acrescentado)

Pergunta 6: MyBatis comumente usado rótulo SQL dinâmica que
a resposta:
se:
apropriado para uma parte onde as palavras contêm dinâmica
se o recurso é
quando se determina se a condição for atendida, adicionar tags se as palavras
quando se verifica se as condições não forem satisfeitas quando nada foi adicionado
a Escolha:
aplica-se:
quando a condição determinação é verdade, uma instrução é executada
quando a condição determinação é falso, executar outra declaração
onde e set:
efeito, onde a:
1, onde quando a declaração rótulo não estiver vazia, será antes a declaração costura em "onde" palavra-chave
2, onde o rótulo, se a declaração é "e" ou no início "ou", então o "e" ou "ou" será omitido
conjunto de papel:
1, se a instrução etiqueta conjunto não estiver vazio, ele estará no início da costura "conjunto" palavra-chave
2, se a instrução for conjunto separador "" na extremidade, então este '' vai ser removido
da guarnição:
prefixo : prefixo adicionado antes da volta string para o que o
sufixo: sufixo, o que é adicionado após a string retornada
prefixoverrides: quando o conteúdo da seqüência de início do Conteúdo será substituído
suffixoverrides: quando a corda termina o seu conteúdo, o conteúdo é coberto com
o Foreach:
Nota: Quando a matriz interface de parâmetro ou método de coleta, MyBatis colocará automaticamente o pacote em um mapa de parâmetro
mapear o tipo de parâmetro chave, a primeira letra minúscula
Padrão: array chave é "array", conjunto de chaves para a "lista", mapear a chave para o "mapa"
Coleção: valor de chave parâmetro no pacote para o mapa de
aberta: representa o que começou seqüência de
perto: o fim de uma string que representa o
artigo: cada um set para um apelido do elemento
separador: elementos no delimitador set

Q7: MyBatis de arquivo de mapeamento XML, diferente arquivo de mapeamento XML, id se você pode repetir?
Resposta:
Different arquivo de mapeamento XML, se um espaço de nomes de configuração, em seguida, o ID pode ser repetido, se não houver namespace configurado, id não pode ser repetido.

Q8: Quando atribui uma classe de entidade e nomes de campos na tabela não é o mesmo, como objetos de pacote
resposta:
Método um: através da definição de nomes de campos nas aliases consulta instrução SQL, para que os nomes campo Alias e classes entidades nomes de atributos consistentes.
Aqui Insert Picture Descrição
Método dois: 1-1 relação de nomes de campos mapeamento eo nome das propriedades da classe de entidade
Aqui Insert Picture Descrição
nona questões: Qual é o papel da etiqueta da associação? Que atributos comuns e usar a tag associação é um papel?
Resposta:
Associação ou: processar um único associado associação processo objeto único atributo
propriedade: injeção para funcionários que atributo
selecione: Enviar que uma instrução SQL
javaType: objeto ao qual classe a consulta instrução SQL do conjunto de resultados, o pacote para (pode ser omitido )
coluna: resultados dos empregados focados sobre o valor da coluna, que é utilizado como um objecto para condições associadas com a consulta

Pergunta 10: MyBatis alcançar a atribuição objeto associado de várias maneiras, o que são, por favor brevemente brevemente
resposta:
Ambos estão associados com a consulta e consulta SQL adicional
associado à consulta uma instrução SQL é enviado para o objeto principal e da Associação objectos encapsulados verifique simultaneamente para fora.
consulta SQL adicional é uma query para executar um objectivo principal, de acordo com o valor conjunto de resultados dos principais objectos da coluna chave estrangeira, uma consulta SQL executado objecto adicional associado e atribuído ao objecto principal.

décima primeira questão: a criação de mola objetos DESCRIÇÃO forma
resposta:
1, o construtor
2, fábrica estático
3, Exemplo Quico
4, a interface implementada FactoryBean

Twelfth Título: Primavera / SpringMVC notas comuns e seu papel (pelo menos 8)
resposta:
@ Component, @ Repository, @ Service, @ o Controlador: a classe de objeto da Primavera de gestão é criado
@ Autowired, @ Resource: de recipiente Obtém o objeto de classe e campo de atribuição
@RequestMapping: método de mapeamento de caminho de acesso
@ResponseBody: método convert retorna o objeto para JSON
a @Scope: definir o escopo do objeto
@ PostConstruct, @ PreDestory: vida definição ciclo objeto
@Aspect: set a classe corte
@Transactional: controle Add transação

Décima terceira questão: Conte-nos sobre a compreensão do IOC / DI de Primavera
resposta: COI e DI de Primavera estão descrevendo o mesmo conceito de ângulos diferentes. IoC enfatizar o objeto direitos criado é feito através da Primavera. DI enfatizou que as propriedades do objeto por valor automática Primavera injeção.

pergunta XIV: ordem anotação @Autowired para obter o objecto, quando o valor do campo é injectado a partir do recipiente de
Resposta: Em primeiro lugar, de acordo com o campo de tipo de aquisição, se nenhum tipo irá jogar uma excepção se existe um tipo de correspondência vai ser injectado directamente ;. Se houver vários tipos de jogos, e depois olhar para o objeto apontado como o nome do campo. Se você pode encontrar a injeção direta, se não houver nenhum nome correspondente como lançar uma exceção

XV Título: Primavera IoC funcionalidade completa de quatro notas, bem como os papéis respectivos
a resposta:
quatro anotados com @ Component, @ Repository, @ Serviço , @ Controlador de
quatro funções de anotação para completar o mesmo.
A diferença é: diferentes notas marcadas componentes em camadas diferentes.
@Repository denotado camada Dao montagem
@Service componentes da camada de negócios são denotados
camada de controlo de camada @Controller montagem denotado
etiqueta @Component não pode distinguir com precisão que um componente pertence

pergunta XVI: estático e dinâmico agente diferença proxy
resposta:
o agente estático antes o programa é executado tem existido código de bytes objecto proxy, a relação entre o objecto alvo e objecto de proxy antes o programa é executado foi determinada.
dinâmico objeto proxy agente não for executado antes do programa bytecode bytecode JVM é gerado dinamicamente durante a execução do programa. objetos proxy e relacionamentos no objeto proxy é determinado quando o programa é executado.

XVII título: semelhanças e diferenças entre BeanFactory e ApplicationContext a
resposta:
Ambos são objecto recipiente pode gerir da mola do recipiente.
A diferença é, ApplicationContext é um BeanFactory sub-interfaces .ApplicationContext além de conseguir a interface BeanFactory disso também implementa de mensagens, internacionalização, e outras interfaces. Portanto ApplicationContext é mais poderoso.
dois contentores no tempo para criar objectos de .BeanFactory diferente que irá criar objectos em adquirir o objecto a partir do recipiente, enquanto o objecto recipiente ApplicationContext é instanciado quando o recipiente objeto gerenciado será instanciado.

problema XVIII: Verifique existem as permissões no método de classe com.text.oa.permissionPermissionCheck verificação de classe (), está agora em todos os métodos com.text.oa.service.DepartmentService, no início do processo para adicionar verificações de permissão função, escreva o aop código de configuração xml
resposta:

<bean id="pc" class=com.text.oa.permissionPermissionCheck""></bean>
<aop:config ref="pc">
	<aop:pointcut id="pointcut" expression="execution( *com.text.oa.service.DepartmentService.*(..))">
	<aop:before method="check" pointcut-ref="pointcut"/>
</aop:config>

pergunta XIX: Avançado AOP Cinco momento diferente da Primavera é o que é, e explicar brevemente
a resposta:
o antes: pré-realce operações realizadas no início do método de
pós-retorno: Rear enhanced executado quando o método retorna a operação de
pós-arremesso: aumento anormal, as operações do método realizado quando uma excepção ocorre
após: operações finais do realce realizada após o fim do processo, independentemente do facto do método será executado normalmente termina
em torno: reforço envolvente, reforçando maneira pode personalizar

Título do artigo: as vantagens de ambos gerenciamento de transações Primavera declarativas
respostas:
caminho xml: a vantagem, configuração unificada no arquivo de configuração XML pode ser configurado para todas as transações comerciais necessidade de adicionar algum método por assuntos acrescentando simultaneamente, gerenciamento unificado, fácil manutenção desvantagem é: perfis processo tedioso, arquivos de configuração inchado.
notas maneiras: a vantagem de configuração simples, só precisa de notas marca na classe executiva pode adicionar desvantagem transação é a necessidade de tudo que você precisa para adicionar notas de anotação do tipo de transação, Configurando dispersos, não é propício para a manutenção.

Vigésima primeira pergunta: SpringMVC em, frente e redirecionar o papel de corda
Resposta:
características comuns das duas cordas são os prefixos vista resolvedor e sufixos não vai demorar papel efeito .forward é encaminhar o pedido para maneira salto página vista, redirecionamento redirecionamento é uma maneira de saltar para a visualização da página

Um vigésimo segundo problema: a execução do fluxo SpringMVC
Resposta:
Aqui Insert Picture Descrição
(1) o utilizador envia um pedido para o controlador de front-end o DispatcherServlet;
; (2) o DispatcherServlet depois de receber o pedido, o pedido processador de chamadas HandlerMapping mapeador de obter o identificador
(. 3) do processador de mapeamento url encontra especial processador de acordo com um pedido, o processador objecto geração e um bloqueador do processador (se algum é gerado) colectivamente devolvido para o DispatcherServlet;
(. 4) para ligar a placa de processador DispatcherServlet HandlerAdapter;
(. 5) adaptado para chamar particular através HandlerAdapter um processador (Handler, também chamado de back-end);
(. 6) executar completa manipulador retorna ModelAndView;
(. 7) Handler HandlerAdapter é o resultado da execução é devolvido para ModelAndView o DispatcherServlet;
(. 8) para os Parses analisador passe DispatcherServlet ModelAndView viewResolver vista;
(9) viewResolver vista detalhada retornos analisado;
(10) da vista DispatcherServlet rendem vista (os dados do modelo vinda vista cheio)
em resposta ao utilizador, DispatcherServlet (11.).

Vinte terceira questão: Configuração SpringMVC filtro de pedido de codificação (org.springframework.web.filter.CharacterEncodingFilter)
resposta:

<filter>

	<filter-name>CharacterEncodingFilter</filter-name>

	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

	<init-param>

		<param-name>encoding</param-name>

		<param-value>utf-8</param-value>

	</init-param>

</filter>

<filter-mapping>

	<filter-name>CharacterEncodingFilter</filter-name>

	<url-pattern>/*</url-pattern>

</filter-mapping>

O vigésimo quarto problema: a mesa do usuário análise (usuário) de paginação, cada página é exibida quando dez dados, confira o que a instrução SQL em cinco de dados é?
A resposta:
o * SELECT do limite de usuário 40, 10

Vinte e quinto problema: usando um quadro de resposta SpringMVC JSON etapas de desenvolvimento objecto (controlador de frente, o controlador tem a configuração de controlador)
Resposta:
1. importação Jackson dependente
2. Criar método retorna o objecto e anotação @RequestMapping, designado acesso método do caminho de
@ResponseBody rotulagem observa 3. métodos.

Vinte sexta pergunta: define a interface HanderInterceptor quais os métodos, os métodos da classe de interface na implementação foram executados em que momento a
resposta:
preHandle: Handler executado antes método de execução
postHandle: Depois de realizar método Handler, executado antes vista tornando
afterCompletion: return ModelAndView, após a prestação vista realizada.

Vinte sétimo título: Método lista de presença queryAll () in interface UserMapper, como usar PageHelper plug-in API para paginação consulta (escrever código pseudo para)
resposta:
PageHelper.startPage (as páginas, cada monitor quantidade);
List mapper.query = ();
PageInfo nova nova info = PageInfo (Lista);

Vigésima Oitava ou Falso: Primavera e integração MyBatis, configurando SqlSessionFactoryBean, que valores de atributos precisa injetar valor (ou atributo significado para escrever o nome da propriedade pode ser)
Resposta:
fontes de dados (dataSource)
perfil MyBatis associado (configLocation)
arquivo de mapeamento mapeador associada (mapperLocations)
configurar um alias (typeAliasesPackage).

Vinte nona questão: Ao configurar controlador de frente SpringMVC, "/" e "/ *" Qual é a diferença, se configurado como "/ *"
A resposta:
"/ *" partidas .jsp arquivo "/" não corresponde .jsp arquivo não pode ser configurado como "/ *", porque a configuração é "/ *", controlador de frente, em seguida, todos os arquivos JSP será bloqueado, mas o controlador front-end não pode lidar com jsp arquivos.

Trinta ou Falso: SpringMVC Retorna String e ModelAndView, saltar páginas e como transferir dados a uma página, siga as instruções são
as respostas:
a cadeia de caracteres de retorno, a string é retornado diretamente para o nome correspondente do ponto de vista, você pode usar o método addAttribute Modelo método de transferência parâmetro objeto na dados
objeto ModelAndView retorno, um método objecto addObject comunicar dados, usando um método proporcionado nome setViewName objecto da vista.

Trinta perguntas: resultMap e ResultType diferença
Resposta:
Ambos são o resultado da consulta indicam uma relação entre o conjunto e java objeto, processar o conjunto de resultados da consulta é mapeado para objeto java.
Resultmap: representa as colunas do conjunto do resultado da consulta para-um mapeamento de atributos indivíduo objecto feijão.
ResultType: representa o feijão classe de objeto, este tempo pode ser omitido mapa rótulo resultMap, deve garantir que o conjunto de resultados de consulta de atributos e classe de objeto atributos de feijão é de um para um, então case-insensitive, mas há restrições.

Ele publicou 189 artigos originais · ganhou elogios 13 · vista 10000 +

Acho que você gosta

Origin blog.csdn.net/NewBeeMu/article/details/101161920
Recomendado
Clasificación