Advertisement
Guest User

Untitled

a guest
Nov 29th, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.06 KB | None | 0 0
  1. package br.gov.sp.fatec.web.controller;
  2.  
  3. import java.util.Collection;
  4.  
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7.  
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.http.HttpStatus;
  10. import org.springframework.http.MediaType;
  11. import org.springframework.http.ResponseEntity;
  12. import org.springframework.stereotype.Service;
  13. import org.springframework.web.bind.annotation.PathVariable;
  14. import org.springframework.web.bind.annotation.RequestBody;
  15. import org.springframework.web.bind.annotation.RequestMapping;
  16. import org.springframework.web.bind.annotation.RequestMethod;
  17. import org.springframework.web.bind.annotation.ResponseStatus;
  18. import org.springframework.web.bind.annotation.RestController;
  19.  
  20. import com.fasterxml.jackson.annotation.JsonView;
  21.  
  22. import br.gov.sp.fatec.model.Usuario;
  23. import br.gov.sp.fatec.service.IServiceUsuario;
  24. import br.gov.sp.fatec.service.UsuarioServiceImpl;
  25. import br.gov.sp.fatec.view.View;
  26.  
  27.  
  28.  
  29. @RestController
  30. @RequestMapping(value = "/usuario")
  31. public class UsuarioWebController {
  32.  
  33.  
  34.  
  35.  
  36. @Autowired
  37. IServiceUsuario serviceusu;
  38.  
  39.  
  40. public void setUsuarioService(IServiceUsuario serviceusu) {
  41. this.serviceusu = serviceusu;
  42. }
  43.  
  44.  
  45. @RequestMapping(value="usuario/{nome}")
  46. public ResponseEntity<Collection<Usuario>>listarUsuarioNome(@PathVariable("nome") String nome){
  47. return new ResponseEntity<Collection<Usuario>>(serviceusu.buscar(nome),HttpStatus.OK);
  48.  
  49. }
  50.  
  51.  
  52. @RequestMapping(value = "usuario/save", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
  53. @JsonView({View.All.class, View.Alternative.class})
  54. // E possivel indicar o status por anotacao, mas sera fixo, sem possibilidade de tratar erros
  55. @ResponseStatus(HttpStatus.CREATED)
  56. public Usuario save(@RequestBody Usuario usuario, HttpServletRequest request,HttpServletResponse response) {
  57.  
  58. usuario = serviceusu.salvar(usuario);
  59. response.addHeader("Location", request.getServerName() + ":" + request.getServerPort() +
  60. request.getContextPath() + "/usuario/getById?id=" + usuario.getId());
  61. return usuario;
  62.  
  63. }
  64.  
  65.  
  66.  
  67. }
  68.  
  69. package br.gov.sp.fatec.model;
  70.  
  71. import java.util.List;
  72.  
  73. import javax.persistence.Column;
  74. import javax.persistence.Entity;
  75. import javax.persistence.GeneratedValue;
  76. import javax.persistence.GenerationType;
  77. import javax.persistence.Id;
  78. import javax.persistence.Table;
  79.  
  80. import com.fasterxml.jackson.annotation.JsonView;
  81.  
  82. import br.gov.sp.fatec.view.View;
  83.  
  84.  
  85.  
  86. @Entity
  87. @Table(name= "new")
  88. public class Usuario {
  89.  
  90.  
  91.  
  92. @Id
  93. @GeneratedValue(strategy=GenerationType.IDENTITY)
  94. @Column(name="idusuario")
  95. @JsonView({View.All.class, View.Alternative.class})
  96. private long id;
  97.  
  98.  
  99. @Column(name="usuario_nome")
  100. private String nome;
  101.  
  102.  
  103. @Column(name="usuario_senha")
  104. private String senha;
  105.  
  106. public Usuario() {
  107. super();
  108. this.id = id;
  109. this.nome = nome;
  110. this.senha = senha;
  111. }
  112.  
  113.  
  114. public long getId() {
  115. return id;
  116. }
  117.  
  118.  
  119. public void setId(long id) {
  120. this.id = id;
  121. }
  122.  
  123.  
  124. public String getNome() {
  125. return nome;
  126. }
  127.  
  128.  
  129. public void setNome(String nome) {
  130. this.nome = nome;
  131. }
  132.  
  133.  
  134. public String getSenha() {
  135. return senha;
  136. }
  137.  
  138.  
  139. public void setSenha(String senha) {
  140. this.senha = senha;
  141. }
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148. }
  149.  
  150. package br.gov.sp.fatec.repository;
  151.  
  152. import java.util.List;
  153.  
  154. import org.springframework.data.jpa.repository.Query;
  155. import org.springframework.data.repository.CrudRepository;
  156. import org.springframework.stereotype.Service;
  157.  
  158. import br.gov.sp.fatec.model.Usuario;
  159.  
  160. @Service
  161. public interface UsuarioRepository extends CrudRepository<Usuario, Long> {
  162.  
  163. public Usuario findByNome(String nome);
  164.  
  165. public Usuario findTop1ByNomeContains(String nome);
  166.  
  167. public List<Usuario> findByIdGreaterThan(Long id);
  168.  
  169. public List<Usuario> findByAutorizacoesNome(String nome);
  170.  
  171. public List<Usuario> findByNomeContainsIgnoreCase(String nome);
  172.  
  173. @Query("select u from Usuario u where u.nome like %?1%")
  174. public List<Usuario> buscaUsuario(String nome);
  175. }
  176.  
  177. package br.gov.sp.fatec.service;
  178.  
  179. import java.util.List;
  180.  
  181. import br.gov.sp.fatec.model.Usuario;
  182. import br.gov.sp.fatec.repository.UsuarioRepository;
  183.  
  184. public interface IServiceUsuario extends UsuarioRepository {
  185.  
  186.  
  187. public List<Usuario> buscar(String nome);
  188. public Usuario buscar(Long id);
  189. public List<Usuario> todos();
  190. public Usuario salvar(Usuario usuario);
  191.  
  192. }
  193.  
  194. package br.gov.sp.fatec.service;
  195.  
  196.  
  197. import java.util.ArrayList;
  198. import java.util.List;
  199.  
  200. import javax.ws.rs.Consumes;
  201. import javax.ws.rs.Produces;
  202. import javax.ws.rs.core.MediaType;
  203.  
  204. import org.springframework.beans.factory.annotation.Autowired;
  205. import org.springframework.stereotype.Controller;
  206. import org.springframework.stereotype.Service;
  207.  
  208. import br.gov.sp.fatec.model.Usuario;
  209. import br.gov.sp.fatec.repository.UsuarioRepository;
  210.  
  211.  
  212. @Service("IServiceUsuario")
  213. public class UsuarioServiceImpl implements IServiceUsuario {
  214.  
  215.  
  216. @Autowired
  217. private UsuarioRepository usuarioRepo;
  218.  
  219. @Override
  220. public List<Usuario> buscar(String nome) {
  221. return usuarioRepo.findByNomeContainsIgnoreCase(nome);
  222. }
  223.  
  224. @Override
  225. public Usuario buscar(Long id) {
  226. return usuarioRepo.findOne(id);
  227. }
  228.  
  229. @Override
  230. public List<Usuario> todos() {
  231. List<Usuario> retorno = new ArrayList<Usuario>();
  232. for(Usuario usuario: usuarioRepo.findAll()) {
  233. retorno.add(usuario);
  234. }
  235. return retorno;
  236. }
  237.  
  238. @Override
  239. public Usuario salvar(Usuario usuario) {
  240. return usuarioRepo.save(usuario);
  241. }
  242.  
  243. /**
  244. * @return the usuarioRepo
  245. */
  246. public UsuarioRepository getUsuarioRepo() {
  247. return usuarioRepo;
  248. }
  249.  
  250. /**
  251. * @param usuarioRepo the usuarioRepo to set
  252. */
  253. public void setUsuarioRepo(UsuarioRepository usuarioRepo) {
  254. this.usuarioRepo = usuarioRepo;
  255. }
  256.  
  257. @Override
  258. public Usuario findByNome(String nome) {
  259. // TODO Auto-generated method stub
  260. return null;
  261. }
  262.  
  263. @Override
  264. public Usuario findTop1ByNomeContains(String nome) {
  265. // TODO Auto-generated method stub
  266. return null;
  267. }
  268.  
  269. @Override
  270. public List<Usuario> findByIdGreaterThan(Long id) {
  271. // TODO Auto-generated method stub
  272. return null;
  273. }
  274.  
  275. @Override
  276. public List<Usuario> findByAutorizacoesNome(String nome) {
  277. // TODO Auto-generated method stub
  278. return null;
  279. }
  280.  
  281. @Override
  282. public List<Usuario> findByNomeContainsIgnoreCase(String nome) {
  283. // TODO Auto-generated method stub
  284. return null;
  285. }
  286.  
  287. @Override
  288. public List<Usuario> buscaUsuario(String nome) {
  289. // TODO Auto-generated method stub
  290. return null;
  291. }
  292.  
  293. @Override
  294. public long count() {
  295. // TODO Auto-generated method stub
  296. return 0;
  297. }
  298.  
  299. @Override
  300. public void delete(Long arg0) {
  301. // TODO Auto-generated method stub
  302.  
  303. }
  304.  
  305. @Override
  306. public void delete(Usuario arg0) {
  307. // TODO Auto-generated method stub
  308.  
  309. }
  310.  
  311. @Override
  312. public void delete(Iterable<? extends Usuario> arg0) {
  313. // TODO Auto-generated method stub
  314.  
  315. }
  316.  
  317. @Override
  318. public void deleteAll() {
  319. // TODO Auto-generated method stub
  320.  
  321. }
  322.  
  323. @Override
  324. public boolean exists(Long arg0) {
  325. // TODO Auto-generated method stub
  326. return false;
  327. }
  328.  
  329. @Override
  330. public Iterable<Usuario> findAll() {
  331. // TODO Auto-generated method stub
  332. return null;
  333. }
  334.  
  335. @Override
  336. public Iterable<Usuario> findAll(Iterable<Long> arg0) {
  337. // TODO Auto-generated method stub
  338. return null;
  339. }
  340.  
  341. @Override
  342. public Usuario findOne(Long arg0) {
  343. // TODO Auto-generated method stub
  344. return null;
  345. }
  346.  
  347. @Override
  348. public <S extends Usuario> S save(S arg0) {
  349. // TODO Auto-generated method stub
  350. return null;
  351. }
  352.  
  353. @Override
  354. public <S extends Usuario> Iterable<S> save(Iterable<S> arg0) {
  355. // TODO Auto-generated method stub
  356. return null;
  357. }
  358.  
  359.  
  360. }
  361.  
  362. <?xml version="1.0" encoding="UTF-8"?>
  363. <beans xmlns="http://www.springframework.org/schema/beans"
  364. xmlns:p="http://www.springframework.org/schema/p"
  365. xmlns:tx="http://www.springframework.org/schema/tx"
  366. xmlns:jpa="http://www.springframework.org/schema/data/jpa"
  367. xmlns:context="http://www.springframework.org/schema/context"
  368. xmlns:mvc="http://www.springframework.org/schema/mvc"
  369. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  370. xsi:schemaLocation="http://www.springframework.org/schema/beans
  371. http://www.springframework.org/schema/beans/spring-beans.xsd
  372. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
  373. http://www.springframework.org/schema/data/jpa
  374. http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
  375. http://www.springframework.org/schema/context
  376. http://www.springframework.org/schema/context/spring-context.xsd
  377. http://www.springframework.org/schema/mvc
  378. http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  379.  
  380. <context:component-scan base-package="br.gov.sp.fatec" />
  381.  
  382. <jpa:repositories base-package="br.gov.sp.fatec.repository"/>
  383.  
  384.  
  385. <!-- Datasource -->
  386. <bean id="dataSource"
  387. class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  388. <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  389. <property name="url" value="jdbc:mysql://localhost:3306/sistec" />
  390. <property name="username" value="root" />
  391. <property name="password" value="fatec" />
  392. </bean>
  393.  
  394. <bean id="entityManagerFactory"
  395. class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
  396. p:packagesToScan="br.gov.sp.fatec.model"
  397. p:dataSource-ref="dataSource"
  398. >
  399. <property name="jpaVendorAdapter">
  400. <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
  401. <property name="generateDdl" value="false" />
  402. <property name="showSql" value="true" />
  403. <property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect"/>
  404. </bean>
  405. </property>
  406. </bean>
  407.  
  408. <bean id="transactionManager"
  409. class="org.springframework.orm.jpa.JpaTransactionManager">
  410. <property name="entityManagerFactory" ref="entityManagerFactory" />
  411. </bean>
  412. <tx:annotation-driven />
  413.  
  414.  
  415. </beans>
  416.  
  417. (Meu Web.xml)
  418.  
  419. <!DOCTYPE web-app PUBLIC
  420. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  421. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  422.  
  423. <web-app>
  424. <display-name>Spring Rest</display-name>
  425.  
  426. <!-- Add Support for Spring -->
  427. <servlet>
  428. <servlet-name>spring</servlet-name>
  429. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  430. <init-param>
  431. <param-name>contextConfigLocation</param-name>
  432. <param-value>/WEB-INF/applicationContext*.xml</param-value>
  433. </init-param>
  434. <load-on-startup>1</load-on-startup>
  435. </servlet>
  436.  
  437. <servlet-mapping>
  438. <servlet-name>spring</servlet-name>
  439. <url-pattern>/</url-pattern>
  440. </servlet-mapping>
  441.  
  442. </web-app>
  443.  
  444. .
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement